Looking for .net Keywords? Try Ask4Keywords

.NET Framework Перечислить файлы старше указанной суммы


пример

Этот фрагмент является вспомогательной функцией для перечисления всех файлов старше указанного возраста, это полезно - например, когда вам приходится удалять старые файлы журналов или старые кешированные данные.

static IEnumerable<string> EnumerateAllFilesOlderThan(
                               TimeSpan maximumAge,
                               string path,
                               string searchPattern = "*.*",
                               SearchOption options = SearchOption.TopDirectoryOnly)
{
    DateTime oldestWriteTime = DateTime.Now - maximumAge;

    return Directory.EnumerateFiles(path, searchPattern, options)
        .Where(x => Directory.GetLastWriteTime(x) < oldestWriteTime);
}

Используется следующим образом:

var oldFiles = EnumerateAllFilesOlderThan(TimeSpan.FromDays(7), @"c:\log", "*.log");

Мало что нужно отметить:

  • Поиск выполняется с использованием Directory.EnumerateFiles() вместо Directory.GetFiles() . Перечисление живое, тогда вам не нужно ждать, пока все записи в файловой системе не будут извлечены.
  • Мы проверяем последнее время записи, но вы можете использовать время создания или время последнего доступа (например, для удаления неиспользуемых кешированных файлов, обратите внимание, что время доступа может быть отключено).
  • Гранулярность не является однородной для всех этих свойств (время записи, время доступа, время создания), проверьте MSDN, чтобы узнать подробности об этом.