تقليل الوصول إلى القرص عند الحصول على سمات الملفات في الدليل
-
20-09-2019 - |
سؤال
كما يوحي العنوان ، أنا أبحث عن طريقة للحصول على سمات لعدد كبير من الملفات في الدليل ، ولكن دون إضافة تكلفة الوصول إلى القرص الإضافي لكل ملف.
على سبيل المثال ، إذا حصلت على سمة الاسم لكائنات FileInfo في مجموعة ، فلا يوجد وصول إضافي للقرص. ومع ذلك ، إذا حصلت على LastWriteTimeUTC ، فسيتم الوصول إلى قرص إضافي.
رمز بلدي:
DirectoryInfo di = new DirectoryInfo(myDir);
FileInfo[] allFiles = di.GetFiles("*.*", SearchOption.TopDirectoryOnly);
foreach (FileInfo fInfo in allFiles)
{
name = fInfo.Name //no additional disk access made
lastMod = fInfo.LastWriteTimeUtc //further disk access made!!!
}
هل يعرف أي شخص طريقة يمكنني الحصول على هذه المعلومات في رحلة ذهابًا وإيابًا؟ كنت آمل أن يقوم DirectoryInfo.getFiles () بهذا ولكن لا حظ.
شكرا لك مقدما.
المحلول 2
لذلك ، هذا يحدث عن طريق التصميم. تم تحميل LastWriteTiTETC كسول. لذلك لا شيء للقيام به آخر اكتب مكون خاص بي.
نصائح أخرى
اذا أنت هل حقا تهتم بهذا ، ربما يجب أن تكتب هذا في C باستخدام FindFirstFile/GetFiletime ، إلخ.
لا تنتمي إلى StackOverflow