2013-07-04 133 views
2

我想將包括文件在內的所有文件和子目錄移動到同一文件夾的另一個子目錄中。將文件夾中的所有文件和子目錄移動到同一文件夾的另一個子目錄中

例如我有一個名爲abcd的文件夾,裏面有一個文件aa和子文件夾bb,cc,dd。 因此,我想在abcd \ backup 的同一文件夾內創建另一個子目錄,並將aa,bb,cc,dd,即所有文件和文件夾移動到備份文件夾。

+0

我不能在這裏找到 – Shaharyar

+0

任何問題,你能分享你已經試過 –

回答

2

這會很簡單。

Directory.Move("SourcePath", "DestinationPath"); 

處理源文件夾中的所有目錄,並對每個使用forloop或foreach的文件夾使用上述語法移動到目標文件夾。

+0

SA不要求移動文件,他希望有一個備份,以便複製是一件好事。 – Sagotharan

+0

這不適用於網絡路徑:\\ server \ folder \。它會拋出一個異常,它無法找到路徑部分 – anindis

+0

@anindis不會Server.MapPath()解決該問題? – tony09uk

0
 string source = @"d:\test"; 
     string dest = @"d:\move\"; 

     DirectoryInfo dirInfo = new DirectoryInfo(dest); 
     if (dirInfo.Exists == false) 
      Directory.CreateDirectory(dest); 


     DirectoryInfo dir = new DirectoryInfo(source); 
     DirectoryInfo[] dirs = dir.GetDirectories(); 


     string[] files = Directory.GetFiles(source); 
     Int32 i = dirs.Count() + files.Count(); 
     // for progress bar 

     foreach (string file in files) 
     { 
      try 
      { 
       string name = Path.GetFileName(file); 
       string destFile = Path.Combine(dest, name); 
       // skip some file 
       if (name != "file") File.Move(file, destFile); 
      } 
      catch 
      { 

      } 
     } 

     foreach (DirectoryInfo subdir in dirs) 
     { 
      string temppath = Path.Combine(dest, subdir.Name); 
      if (!Directory.Exists(temppath)) 
       try 
       { 
        Directory.Move(subdir.FullName, temppath); 
       } 
       catch 
       { 

       } 
     } 
相關問題