
09/12/2021 (Versi 3.5)
03/13/2021 (Versi 3.4)
02/01/2021 (Versi 3.3)
12/18/2020 (Versi 3.2)
12/17/2020 (Versi 3.1)
IncludeDirItem untuk memasukkan item direktori dalam hasil pencarian.IncludeHiddenFiles dan IncludeSystemFiles untuk SearchHiddenFiles dan SearchSystemFiles .TDSFile ke TDSResultItem .12/17/2020 (versi 3.0)
ResultList Baru Menggunakan Objek TDSFile Kustom Baru. Jika Anda ingin mendapatkan hasil dalam daftar string, Anda dapat menggunakan metode baru GetResultStrings .IncludeHiddenFiles dan IncludeSystemFiles properti.11/22/2020 (Versi 2.0)
Inclusions baru dan properti Exclusions .10/31/2020 (Versi 1.3)
10/27/2020 (Versi 1.2)
10/26/2020 (Versi 1.1)
05/03/2020
Saat menggunakan Delphi dan bekerja dengan file dan direktori, pada akhirnya Anda perlu mencari dan mendapatkan daftar file dalam direktori, atau bahkan mencari file di sub-direktori.
Ini bisa sedikit sulit menggunakan fungsi FindFirst dan FindNext lama. Sekarang kami memiliki metode baru yang berlebihan TDirectory.GetFiles , tersedia di unit System.IOUtils .
Tetapi, bahkan menggunakan metode GetFiles, jika Anda memerlukan beberapa parameter canggih seperti termasuk sub-direktori, Anda perlu mengulangi semua direktori. Juga jika Anda ingin menentukan topeng yang menyertakan beberapa bagian dari string path, Anda harus bekerja dengan string dalam kode Anda setiap kali Anda membutuhkan sumber daya ini.
Jadi, saya memutuskan untuk membangun komponen ini untuk menjadi cara mudah untuk mencari file.
Mendukung Delphi Xe3..Delphi 11
Cukup isi properti yang diinginkan dan Seek metode panggilan.
Kemudian Anda dapat membaca ResultList properti publik untuk mendapatkan semua file yang ditemukan. Daftar ini berisi objek TDSResultItem .
Dir: String = path to pencarian
Inclusions: TStrings = Jika ada baris yang ditentukan, komponen hanya akan mencari topeng yang ditentukan di sini, sesuai dengan sintaks mask yang dijelaskan di bawah ini.
Exclusions: TStrings = Tepat setelah Inclusions memeriksa, jika file cocok dengan topeng Exclusions (sesuai dengan sintaks mask yang dijelaskan di bawah), maka itu akan dikecualikan dari pencarian.
Sintaks Maskes:
*.txt
myapp.exe
*xyz*.doc
myfile?.rtf
*sub_path*
first_path*
path1path2file.avi
<F>*abc*
Jika Anda menggunakan string
<F>dengan mask, itu akan dianggap hanya bagian nama file dari jalur. Ini berguna ketika topeng bisa dikacaukan dengan bagian direktori.
Contoh: Mari kita asumsikan ada jalur C: myApp. Di dalam folder ini ada folder lain C: myApp subfolder. Di dalam folder terakhir ini, ada file yang disebut my_app_file.txt.
Jadi, jika kita perlu mengecualikan semua file yang berisi teks "aplikasi", kita dapat menentukan di properti Maskes: *app* . Tetapi dalam hal ini, folder akan dikecualikan juga, karena mereka cocok dengan aplikasi *app* , dan dengan asumsi bahwa kami ingin memasukkan direktori ini karena ada file lain dengan nama lain yang berbeda. Dalam hal ini, kita dapat menggunakan <F>*app* . Ini hanya akan mempertimbangkan bagian nama file ketika komponen memeriksa topeng.
Properti ini tergantung pada properti Usemask yang diaktifkan.
Sorted: Boolean = jika diaktifkan, itu akan mengambil direktori dan file yang diurutkan secara abjad. (default false)
SubDir: Boolean = jika diaktifkan, itu akan memindai file di semua sub-direktori di dalam jalur pencarian. (default true)
UseMask: Boolean = jika diaktifkan, itu akan mempertimbangkan Inclusions dan Exclusions properti. Jika dinonaktifkan, itu akan mengambil selalu semua file. (diaktifkan default).
IncludeHiddenFiles = jika diaktifkan, itu akan mencakup file dan folder tersembunyi (hanya berfungsi pada platform windows).
IncludeSystemFiles = jika diaktifkan, itu akan mencakup file sistem dan folder (hanya berfungsi pada platform Windows).
Saat Anda menjalankan pencarian direktori, hasilnya akan diambil dalam properti ResultList , yang berisi objek TDSResultItem . Anda dapat mengulangi daftar ini untuk mendapatkan properti hasil.
BaseDir = jalur direktori yang digunakan saat pencarian dimulai.
RelativeDir = jalur direktori tanpa awalan direktori dasar.
Name = hanya bagian nama file.
Size = ukuran file dalam byte.
Attributes = atribut file (sama dengan properti tsearchrec.attr).
Timestamp = File tanggal dan waktu tulis terakhir.
IsDir = jika item adalah direktori (hanya muncul jika properti IncludeDirItem adalah benar ketika pencarian dieksekusi).
Jika Anda hanya ingin mendapatkan daftar string path file, Anda dapat menggunakan metode GetResultStrings :
procedure GetResultStrings (S: TStrings; Kind: TDSResultKind); Di mana properti Kind mewakili:
// Returns bytes in megabytes string format, with two decimal places.
function BytesToMB (X: Int64): string;
// Returns file size in bytes.
function GetFileSize ( const aFileName: string): Int64;
// Returns if an attribute enumerator contains a specific attribute (use System.SysUtils consts: faReadOnly, faHidden, faDirectory...)
function ContainsAttribute (AttributesEnum, Attribute : Integer): Boolean;