2012-03-13 3 views
0

У меня есть клиент, который хочет иметь возможность сохранять файлы в определенном каталоге с автоматической системой инкремента на месте (NNN.fileextension), где первый загружаемый файл начинается с имени " 001 ", второй" 002 "и так далее. Все в порядке, однако я не понимаю, как можно прокручивать существующие файлы в каталоге и находить последний файл, который был загружен на основе шаблона имени файла, указанного ранее.Directory.GetFiles search pattern

Как я могу прокрутить файлы, определить, имеет ли файл шаблон «NNN» (N, представляющий числовую), и получить последний загружаемый файл?

ответ

0

Вы можете использовать Directory.GetFiles(string, string), который принимает шаблон поиска для файлов в качестве второго аргумента (знак вопроса ? действует как одиночный символ держатель места).

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

var maxId = Directory.GetFiles("w:\\", "???.fileextension") 
    .Select(file => int.Parse(Path.GetFileNameWithoutExtension(file))) 
    .Max(); 
0

Вы можете заказать дату создания, а затем взять первый.

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 
+0

Это правда, однако, может быть время, когда автоинкремент выключен и что, если имя файла не является одним из файлов с автоматическим приращением? – mattgcon

+0

, пожалуйста, найдите обновленный ответ выше. – PraveenVenu

Смежные вопросы