【问题标题】:IOException access denied when Directory.Move subfolder and parent folderDirectory.Move 子文件夹和父文件夹时拒绝 IOException 访问
【发布时间】:2013-09-30 21:04:01
【问题描述】:

我正在尝试重命名具有子文件夹的多个文件夹,但是当我在子文件夹上使用 Directory.Move() 时,父文件夹似乎被锁定了。

我的代码:

var pathParent = @"D:\test\f1";
var pathSub = @"D:\test\f1\f2";

var pathParentnew = @"D:\test\f1new";
var pathSubnew = @"D:\test\f1\f2new";

Directory.Move(pathSub, pathSubnew);
Directory.Move(pathParent, pathParentnew);

最后一个Directory.Move() 抛出一个

IOException:对“D:\test\f1”的访问被拒绝

有人知道如何重命名这两个文件夹吗?

【问题讨论】:

  • 您是否已经拥有名为D:\test\f1new 的文件夹?
  • 不,我没有。 Tnx 进行编辑。
  • 我试过你的代码,它在我的机器上运行良好。
  • 你确定你没有这段代码之间什么都没有吗?
  • 其实,我第一次运行它就成功了。如果我将文件夹重命名为原始名称并再次运行,则会引发异常。

标签: c# ioexception .net


【解决方案1】:

您的程序之前在父目录中打开了一个文件。您需要先关闭该文件流,然后它才能重命名文件夹。

【讨论】:

  • 感谢他的回复。你知道我该怎么做吗?
【解决方案2】:

我发现了问题所在。我不得不在 Windows 中关闭文件资源管理器。该过程以某种方式锁定了文件夹。

【讨论】:

  • 奇怪,为我的案例打开了一个 PARENT 文件夹,这就是锁定问题...
【解决方案3】:

试试这个..

 DirectoryInfo dirInfo = new DirectoryInfo(oldpath);
 dirInfo.MoveTo(newPath);

【讨论】:

    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 2013-06-05
    • 2011-05-11
    • 1970-01-01
    相关资源
    最近更新 更多