Member 10628309 Ответов: 1

Как получить два (или три) файла и удалить самый старый


Обычно я получаю два файла с датой, похороненной в имени файла, используя: см. Фрагмент 1, который хорошо работает, потому что он принимает дикую карту. Я хочу иметь доступ к каждому из двух файлов по отдельности, чтобы я мог выбрать более старый из двух файлов и удалить его, используя код, подобный фрагменту 2. У меня возникли проблемы с разделением этих двух файлов. Я думаю, что мой код нуждается в крошечной настройке, но я не могу понять этого.

Что я уже пробовал:

Dim di As DirectoryInfo = New DirectoryInfo("C:\Race\PHRF List\Archive PHRF List\")
        For Each fi In di.GetFiles("*")
            Dim fileNameOnly As String = fi.Name
            Eds = Eds & fileNameOnly & ",  "
        Next
        MsgBox(Eds)
- Этот код получает 2 файла,разделенных запятой и пробелом, и показывает их в MsgBox. Мне не нужно это окно для сообщений. Я воспользовался им просто для того, чтобы проверить, получаю ли я свои файлы.

If file1.CreationTime < file2.CreationTime Then
        File.Delete(file1)
Else If file2.CreationTime < file1.CreationTime Then
        File.Delete(file2)
End If

1 Ответов

Рейтинг:
0

MadMyche

Немного LINQ это должно вывести тебя на правильный путь.

Это на языке C#, так что вам нужно будет немного перевести, но он даст вам файлы в порядке даты создания. Вы, вероятно, могли бы бросить в него Метода firstordefault() и просто самый старый файл

FileInfo[] files = info.GetFiles().OrderBy(p => p.CreationTime);


Maciej Los

5ed!
Дата модификации тоже может быть интересной.