Directory.Move子文件夹和父文件夹时IOException访问被拒绝

时间:2013-09-25 10:11:34

标签: 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.Move(pathParent, pathParentnew);

最后Directory.Move()抛出

  

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

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

3 个答案:

答案 0 :(得分:3)

我弄清楚问题是什么。我不得不在Windows中关闭文件资源管理器。这个过程以某种方式锁定了文件夹。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

试试这个..

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