2012-03-13 20 views
0

自動インクリメントシステム(NNN.fileextension)を使用して特定のディレクトリにファイルを保存したいクライアントがあります。この場合、アップロードされる最初のファイルは " 001 "、第2の" 002 "などがある。しかし、私は、ディレクトリ内の既存のファイルをループして、前に指定したファイル名パターンに基づいてアップロードされた最後のファイルを見つける方法については悩まされています。Directory.GetFiles検索パターン

どのようにファイルをループして、ファイルのパターンが「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

関連する問題