تقليل الوصول إلى القرص عند الحصول على سمات الملفات في الدليل

StackOverflow https://stackoverflow.com/questions/1941633

  •  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 ، إلخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top