【问题标题】:Rename Directory With SubFolders and Files使用子文件夹和文件重命名目录
【发布时间】:2012-01-18 23:26:52
【问题描述】:

如何重命名下面有许多文件夹和文件的目录? Directory.Move() 不断抛出错误,我读到您不能在非空目录上使用它。

【问题讨论】:

  • 什么错误?这里没什么可说的。
  • 你在哪里读到它不能用于非空目录?你在处理异常吗?如果有,有什么例外?
  • 正如其他人所说,您需要添加更多信息,文档中没有任何内容 (msdn.microsoft.com/en-us/library/system.io.directory.move.aspx) 说明它不能用于非空目录,但有一些可以抛出的记录错误,例如试图将目录移动到已经存在的路径。有了更多细节,人们实际上可以给你一个有用的答案

标签: c# asp.net directory .net


【解决方案1】:

你总是可以执行 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();

【讨论】:

  • @TravisJ:更新了使用 ren 方法的 C# 机制。
  • 非常感谢,将 DirectoryInfo 与 MapPath 一起使用的建议效果很好,感谢您的帮助!
猜你喜欢
  • 2021-11-08
  • 1970-01-01
  • 2017-03-13
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
  • 2014-07-12
  • 2021-06-09
  • 2011-12-30
相关资源
最近更新 更多