C# 当目录移动子文件夹和父文件夹时,IOException访问被拒绝

C# 当目录移动子文件夹和父文件夹时,IOException访问被拒绝,c#,ioexception,.net,C#,Ioexception,.net,我试图重命名多个包含子文件夹的文件夹,但在子文件夹上使用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

我试图重命名多个包含子文件夹的文件夹,但在子文件夹上使用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);
最后一个
目录.Move(
)抛出

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


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

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

我找到了问题所在。我不得不关闭Windows中的文件资源管理器。这个过程以某种方式锁定了文件夹

试试这个

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

您是否已经有名为
D:\test\f1new
的文件夹?没有。Tnx的编辑。我尝试了你的代码,它在我的机器上工作得很好。你确定你没有在这些代码之间做任何事情吗?事实上,它在我第一次运行它时就工作了。如果我将文件夹重新命名为原始名称并再次运行,它将抛出exception.Tnx作为回复。你知道我该怎么做吗?真奇怪,我的案子的父文件夹被打开了,这就是锁定问题。。。