使用子文件夹和文件重命名目录

问题描述:

如何重命名其下有多个文件夹和文件的目录? Directory.Move()保持抛出错误,我读了你不能在非空目录上使用它。使用子文件夹和文件重命名目录

+1

什么错误?这里没有太多可以继续。 –

+1

你在哪里读过它不能用于非空目录?你在处理异常吗?如果是这样,什么是例外? –

+1

正如其他人所说你需要添加更多信息,文档中没有任何内容(http://msdn.microsoft.com/en-us/library/system.io.directory.move.aspx),它说它可以'不能用于非空目录,但可以引发大量记录的错误,例如试图将目录移动到已存在的路径。更详细的人可以给你一个有用的答案 – RobV

你总是可以执行REN命令行方式:

REN Dir1 Dir2 

您也可以尝试:

System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Server.MapPath("Dir1")); 
di.MoveTo(Server.MapPath("Dir2")); 

下面是使用REN方法的粗略C#版本:

 ProcessStartInfo startInfo = new ProcessStartInfo(); 
     startInfo.UseShellExecute = false; 
     startInfo.RedirectStandardInput = true; 
     startInfo.RedirectStandardOutput = true; 

     startInfo.FileName = "cmd.exe"; 
     startInfo.WorkingDirectory = "D:\\Temp"; 
     Process oProcess = Process.Start(startInfo); 

     oProcess.StandardInput.WriteLine(@"Echo on"); 
     oProcess.StandardInput.WriteLine(@"ren ~test2 ~test1"); 
     oProcess.StandardInput.WriteLine(@"EXIT"); 
     string output = oProcess.StandardOutput.ReadToEnd(); 

     oProcess.WaitForExit(); 

     Console.Write(output); 

     oProcess.Close(); 
+0

对不起,但这必须从C#代码完成。 –

+0

@TravisJ:更新了使用ren方法的C#机制。 –

+0

非常感谢,使用DirectoryInfo和MapPath一起工作的建议非常好,我很感谢帮助! –