Попытка удалить файлы старше x дней vb.net - PullRequest
6 голосов
/ 08 февраля 2012

У меня есть базовый фрагмент кода, который я использую для удаления текстовых файлов в данном каталоге:

For Each file As IO.FileInfo In New IO.DirectoryInfo(filePath).GetFiles("*.txt")
    If (Now - file.CreationTime).Days > intdays Then file.Delete()
    Next

filePath - это каталог, в котором находятся файлы.

intdays - это переменная, которая определяет, сколько дней файлы должны храниться.

Чтобы проверить код, я установил для intdays значение 0, предполагая, что он удалит все файлы в директории.Однако это не так, но не создает ошибок.

Время "Сейчас" равно # 2/8/2012 13:59:00 PM #, которое больше 0. Но я не понимаю, почемузатем он не удаляет файл?

Ответы [ 3 ]

3 голосов
/ 08 февраля 2012

Разница между датами составляет меньше, чем день .

Вы вызываете свойство Days, являющееся целочисленным типом - это будет 0 для интервалов, которыеменьше суток.

1 голос
/ 03 февраля 2014

вы можете использовать LastWriteTime вместо CreateTime, в зависимости от того, чего вы пытаетесь достичь.

0 голосов
/ 08 февраля 2012

Я проверял это

        Dim d = New Date(2012, 11, 21, 16, 0, 0)
        Dim dGreater = New Date(2012, 11, 21, 17, 0, 0)
        Dim result = dGreater - d
        Console.WriteLine(result.Days)

Поэтому, когда вы вычитаете даты с разницей менее одного дня, свойство Days результата равно 0, то есть усекается до меньшего целочисленного значения.

...