Я ищу, как получить имя последнего файла, созданного в папке. Я работаю в .net framework 4.8.
С помощью следующей строки кода я могу получить имя всех файлов в папке, но я не знаю, как отсортировать их по дате создания.
'System.IO.DirectoryInfo("c:\Parametre").GetFileSystemInfos()'
(Я использую Aveva ArchestrA, которая кажется не такой гибкой, как Visual Studio, в качестве среды разработки.)
Не уверен, почему вы должны вызывать GetFileSystemInfos, если вам нужны файлы, учитывая, что он получает файлы и папки, а GetFiles получает только файлы.
Предполагая, что вы не можете/не будете использовать LINQ, GetFiles возвращает массив FileInfo, а Array.Sort сортирует массив. Кажется, это хорошее место для начала.





Вы можете создать переменную для хранения последней найденной даты и инициализировать ее до минимально возможного значения. Затем вы перебираете все файлы и смотрите, есть ли у каждого дата создания позже даты, которую вы сохранили, и если да, то вы обновляете последнюю дату и запоминаете имя файла, например:
Dim dir As String = "C:\Parametre"
Dim latestFilename As String = ""
Dim latestDatetime As DateTime = DateTime.MinValue
Dim di As IO.DirectoryInfo = New System.IO.DirectoryInfo(dir)
For Each fi As IO.FileInfo In di.GetFiles()
If fi.CreationTimeUtc > latestDatetime Then
latestDatetime = fi.CreationTimeUtc
latestFilename = fi.FullName
End If
Next
' The variable latestFilename now contains the full name of
' the file with the latest creation date in the directory dir.
(Теоретически, хотя маловероятно, что может быть более одного файла с одной и той же самой последней меткой времени создания, приведенный выше код вернет только первый из них, записанный в файловой системе.)
Большое спасибо за ваше время и помощь. Только что такое фи? Я должен заявить об этом раньше
@LeoBois Или я отредактировал ответ, чтобы сделать все объявления типов переменных явными.
Я предлагаю вам изучить LINQ и метод
OrderBy.