
09/12/2021 (الإصدار 3.5)
03/13/2021 (الإصدار 3.4)
02/01/2021 (الإصدار 3.3)
12/18/2020 (الإصدار 3.2)
12/17/2020 (الإصدار 3.1)
IncludeDirItem Property لتضمين عناصر الدلائل في نتائج البحث.IncludeHiddenFiles وتشمل IncludeSystemFiles إلى SearchHiddenFiles و SearchSystemFiles .TDSFile إلى TDSResultItem .12/17/2020 (الإصدار 3.0)
ResultList جديدة باستخدام كائن TDSFile جديد مخصص. إذا كنت ترغب في الحصول على قائمة سلاسل ، يمكنك استخدام طريقة جديدة GetResultStrings .IncludeHiddenFiles NewHiddenfiles وتشمل خصائص IncludeSystemFiles .11/22/2020 (الإصدار 2.0)
Inclusions جديدة Exclusions خصائص.10/31/2020 (الإصدار 1.3)
10/27/2020 (الإصدار 1.2)
10/26/2020 (الإصدار 1.1)
05/03/2020
عند استخدام Delphi والعمل مع الملفات والأدلة ، تحتاج في النهاية إلى البحث والحصول على قائمة بالملفات في دليل ، أو حتى البحث عن الملفات الفرعية.
يمكن أن يكون هذا صعبًا بعض الشيء باستخدام وظائف FindFirst القديمة و FindNext . الآن System.IOUtils TDirectory.GetFiles جديدة overloads
ولكن ، حتى باستخدام أساليب GetFiles ، إذا كنت بحاجة إلى بعض المعلمات المتقدمة مثل المشاريع الفرعية ، فستحتاج إلى تكرار جميع الدلائل. أيضًا إذا كنت ترغب في تحديد القناع الذي يتضمن جزءًا من سلسلة Path String ، فستحتاج إلى العمل مع سلاسل في الكود الخاص بك في كل مرة تحتاج فيها إلى هذا المورد.
لذلك ، قررت إنشاء هذا المكون لتصبح وسيلة سهلة للبحث عن الملفات.
يدعم Delphi Xe3..delphi 11
فقط املأ الخصائص المطلوبة Seek طريقة الاتصال.
ثم يمكنك قراءة ResultList الممتلكات العامة للحصول على جميع الملفات التي تم العثور عليها. تحتوي هذه القائمة على كائنات TDSResultItem .
Dir: String = مسار للبحث
Inclusions: TStrings = إذا تم تحديد أي سطر ، فإن المكون سوف يبحث فقط عن الأقنعة المحددة هنا ، وفقًا لبناء القناع الموضح أدناه.
Exclusions: TStrings = مباشرة بعد التحقق Inclusions ، إذا كان الملف يتطابق مع أقنعة Exclusions (وفقًا لبناء القناع الموضح أدناه) ، فسيتم استبعاده من البحث.
بناء جملة الأقنعة:
*.txt
myapp.exe
*xyz*.doc
myfile?.rtf
*sub_path*
first_path*
path1path2file.avi
<F>*abc*
إذا كنت تستخدم السلسلة
<F>مع قناع ، فسيتم اعتبارها فقط جزء اسم الملف من المسار. هذا مفيد عندما يمكن الخلط بين القناع مع جزء الدليل.
مثال: لنفترض أن هناك مسار C: myapp. داخل هذا المجلد ، يوجد مجلد آخر C: myapp المجلد الفرعي. داخل هذا المجلد الأخير ، يوجد ملف يسمى my_app_file.txt.
لذلك ، إذا كنا بحاجة إلى استبعاد جميع الملفات التي تحتوي على النص "تطبيق" ، فيمكننا تحديد خاصية Masks: *app* . ولكن في هذه الحالة ، سيتم استبعاد المجلد أيضًا ، لأنه يطابق *app* ، وافتراض أننا نريد تضمين هذا الدليل لأن هناك ملفات أخرى بأسماء مختلفة أخرى. في هذه الحالة ، يمكننا استخدام <F>*app* . هذا سوف ينظر فقط في جزء اسم الملف عندما يتحقق المكون من الأقنعة.
هذه الخصائص تعتمد على تمكين خاصية usemask .
Sorted: Boolean = إذا تم تمكينها ، فسيسترجع الدلائل والملفات المرتبة أبجديًا. (خطأ افتراضي)
SubDir: Boolean = إذا تم تمكينها ، فسيقوم بمسح الملفات في جميع المخرجين الفرعي داخل مسار البحث. (صواب افتراضي)
UseMask: Boolean = إذا تم تمكينه ، فسيأخذ في الاعتبار خصائص Inclusions Exclusions . إذا تم تعطيله ، فسيسترجع دائمًا جميع الملفات. (التمكين الافتراضي).
IncludeHiddenFiles = إذا تم تمكينه ، فسيتضمن ملفات ومجلدات مخفية (تعمل فقط على منصة Windows).
IncludeSystemFiles = إذا تم تمكينه ، فسيتضمن ملفات النظام والمجلدات (تعمل فقط على نظام Windows Platform).
عند تشغيل دليل الدليل ، سيتم استرداد النتيجة في خاصية ResultList ، والتي تحتوي على كائنات TDSResultItem . يمكنك تكرار هذه القائمة للحصول على خصائص النتائج.
BaseDir = مسار الدليل المستخدم عند بدء البحث.
RelativeDir = مسار الدليل بدون بادئة الدليل الأساسي.
Name = جزء اسم الملف فقط.
Size = حجم الملف بالبايت.
Attributes = سمات الملف (مثل خاصية tsearchrec.attr).
Timestamp = ملف آخر تاريخ الكتابة والوقت.
IsDir = إذا كان العنصر دليلًا (يظهر فقط إذا كانت خاصية IncludeDirItem صحيحة عند تنفيذ البحث).
إذا كنت ترغب في الحصول على قائمة سلاسل مسار الملف فقط ، فيمكنك استخدام طريقة GetResultStrings :
procedure GetResultStrings (S: TStrings; Kind: TDSResultKind); حيث تمثل الممتلكات Kind :
// 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;