Проверка файла, созданного в течение последних X часов

Как проверить, был ли файл создан за последние х часов? например, 23 часа и т.д. Использование С# 3.0.

Примечание. Это также должно работать, если я создам файл сейчас, тогда файл будет секундой, а не часом.

Ответ 1

Использование:

System.IO.File.GetCreationTime(filename);

Чтобы получить время создания файла, см. GetCreationTime для получения более подробной информации и примеров.

Затем вы можете сделать что-то вроде:

public bool IsBelowThreshold(string filename, int hours)
{
     var threshold = DateTime.Now.AddHours(-hours);
     return System.IO.File.GetCreationTime(filename) <= threshold;
}

Ответ 2

Что-то вроде этого...

        FileInfo fileInfo = new FileInfo(@"C:\MyFile.txt"));
        bool myCheck = fileinfo.CreationTime > DateTime.Now.AddHours(-23); 

Ответ 3

Вы можете использовать File.GetCreationTime и сравнить с текущим временем:

private static bool IsFileOlder(string fileName, TimeSpan thresholdAge)
{
    return (DateTime.Now - File.GetCreationTime(fileName)) > thresholdAge;
}

// used like so:
// check if file is older than 23 hours
bool oldEnough = IsFileOlder(@"C:\path\file.ext", new TimeSpan(0, 23, 0, 0));
// check if file is older than 23 milliseconds
bool oldEnough = IsFileOlder(@"C:\path\file.ext", new TimeSpan(0, 0, 0, 0, 23));

Ответ 4

Используйте FileInfo класс и CreationTime.

FileInfo fi = new FileInfo(@"C:\myfile.txt");
bool check = (DateTime.Now - fi.CreationTime).TotalHours < 23;

Ответ 5

    FileInfo fi = new FileInfo("c:\\file.txt");
    if (fi.CreationTime.AddHours(23) >= DateTime.Now)
    {
        //created within the last 23 hours
    }