2013-07-04 73 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 
       { 

       } 
     } 
相关问题