如何在 C# 中將檔案複製到目錄中?


為了複製檔案,C# 提供一個方法File.Copy

File.Copy 有 2 個過載

Copy(String, String) -將現有檔案複製到新檔案中。不允許覆蓋同名檔案。

Copy(String, String, Boolean) 將現有檔案複製到新檔案中。允許覆蓋同名檔案。

Directory.GetFiles 返回與指定搜尋模式匹配的所有檔案(包括其路徑)的名稱,還可以搜尋子目錄。

示例

static void Main (string[] args) {
   string rootPath = @"C:\Users\Koushik\Desktop\TestFolder\TestFolderMain1";

   var searchSourceFolder = Directory.GetFiles(rootPath, "*.*", SearchOption.TopDirectoryOnly);
   Console.WriteLine("-------------Source Folder-------------");
   foreach (string file in searchSourceFolder){
      Console.WriteLine(file);
   }

   string destinationFolder = @"C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\";

   var destinationFolderFiles = Directory.GetFiles(destinationFolder, "*.*",    SearchOption.TopDirectoryOnly);
   Console.WriteLine("-------------Destination Folder Before Copying-------------");
   foreach (string file in destinationFolderFiles){
      Console.WriteLine(file);
   }

   string[] files = Directory.GetFiles(rootPath);

   foreach (string file in files){
      File.Copy(file, $"{destinationFolder}{ Path.GetFileName(file) }");
   }
   Console.WriteLine("-------------After Copying-------------");

   var destinationFolderAfterCopyingFiles = Directory.GetFiles(destinationFolder, "*.*",    SearchOption.TopDirectoryOnly);

   foreach (string file in destinationFolderAfterCopyingFiles){
      Console.WriteLine(file);
   }
   Console.ReadLine ();
}

輸出

-------------Source Folder-------------
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain1\TestFolderMain1.txt
-------------Destination Folder Before Copying-------------
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain2.txt
-------------After Copying-------------
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain1.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain2.txt

更新於: 2020-年 11 月 25 日

4K+ 檢視次數

啟動你的職業生涯

完成課程即可獲得認證

開始學習
廣告