1

サブフォルダーを持つ複数のフォルダーの名前を変更しようとしていますが、サブフォルダーで 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" へのアクセスが拒否されました

両方のフォルダの名前を変更する方法を知っている人はいますか?

4

3 に答える 3

3

私は問題が何であるかを理解しました。Windows でエクスプローラーを閉じる必要がありました。プロセスは何らかの形でフォルダーをロックしていました。

于 2013-09-25T12:53:42.207 に答える
0

これを試して ..

 DirectoryInfo dirInfo = new DirectoryInfo(oldpath);
 dirInfo.MoveTo(newPath);
于 2014-12-03T09:28:22.433 に答える
0

プログラムは、以前に親ディレクトリ内のファイルを開いています。フォルダーの名前を変更するには、そのファイル ストリームを閉じる必要があります。

于 2013-09-25T10:22:47.863 に答える