У меня есть клиент, который хочет иметь возможность сохранять файлы в определенный каталог с системой автоматического увеличения (NNN.fileextension), где первый загруженный файл начинается с имени "001", второй "002" и так далее. Это все хорошо, однако я не понимаю, как перебрать существующие файлы в каталоге и найти последний загруженный файл на основе шаблона имени файла, указанного ранее.
Как я могу просмотреть файлы, определить, имеет ли файл шаблон "NNN" (N представляет числовое значение), и получить последний загружаемый файл?
Ответ 1 · Alex
Вы можете использовать Directory.GetFiles(string, string), который принимает поиск шаблон для файлов в качестве второго аргумента (вопросительный знак ? выступает в качестве заполнителя для одного символа).
Таким образом, чтобы найти максимальный идентификатор, вы должны перебрать найденные файлы, преобразовать имя файла в целочисленное значение и выбрать максимальное значение.
var maxId = Directory.GetFiles("w:\\", "???.fileextension")
.Select(file => int.Parse(Path.GetFileNameWithoutExtension(file)))
.Max();
Ответ 2 · PraveenVenu
Можно заказать по дате создания и потом взять первый.
int maxFileId = 0;
foreach (string file in Directory.GetFiles("c:\\"))
{
try
{
string currentFile = System.IO.Path.GetFileName(file).Replace("." + System.IO.Path.GetExtension(file), "");
if (int.Parse(currentFile) > maxFileId)
maxFileId = int.Parse(currentFile);
}
catch
{
}
}
//maxFileId will give the last file