2016-03-28 86 views
0

我的hve小的代碼可以在文件夾中的重命名的所有文件(圖片)的,它看起來像這樣:C#重命名所有文件的文件夾

static void Main(string[] args) 
    { 
     try 
     { 
      DirectoryInfo d = new DirectoryInfo(@"C:\Users\filip_000\Pictures\Prag"); 
      int i = 1; 

      foreach (var file in d.GetFiles()) 
      { 
       Directory.Move(file.FullName, @"C:\Users\filip_000\Pictures\Prag\" + "Prag_" + i.ToString() + ".jpg"); 
       i++; 
      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
    } 

它工作正常,但我想重新命名圖片(Prag_1,Prag_2,Prag_3 ...)根據文件的日期/時間。我的意思是:我在25.03.2016 16:04拍攝的第一張照片應該是「Prag_1」,我拍攝的最後一張照片是27.03.2016 19:19應該是「Prag_n」。

我希望我能解釋我的問題。感謝您的幫助。

菲利波。

+3

好了,所以它的位被你有問題?按創建時間排序? –

+0

嗨,是的,我應該按創建時間排序文件,並使用不同的文件夾放置重命名文件。 – user3283415

回答

5

OrderLastWriteTime然後移動。

foreach (var file in d.GetFiles().OrderBy(f => f.LastWriteTime)) 
{ 
    Directory.Move(file.FullName, @"C:\Users\filip_000\Pictures\Prag\" + "Prag_" + i.ToString() + ".jpg"); 
    i++; 
} 
+0

謝謝你的回答。使用LINQ是正確的方法。我只能將重命名的文件放在另一個文件夾中。 – user3283415

0

OrderByCreationTime屬性可以是不錯的選擇:

foreach (var file in d.GetFiles().OrderBy(f => f.CreationTime)) 
{ 
    Directory.Move(file.FullName, @"E:\MP3 #1\Prag\" + "Prag_" + i.ToString() + ".jpg"); 
    i++; 
} 
+0

謝謝你的回答。使用LINQ是正確的方法。我只能將重命名的文件放在另一個文件夾中。 – user3283415