0

C#の手順でいくつかのディレクトリ/ファイルをコピーしました。さて、メインディレクトリを削除したいと思います。

したがって、これは基本的なコードです:

dir.Delete(true);

しかし、私はUnauthorizedAccessException(ファイルであるdirectorys.acrodataへのアクセスが拒否されたと思います)。

なんで?どうすれば強制できますか?

4

5 に答える 5

6

おそらく、1) セキュリティ権限が制限されていてファイルを削除できないか、2) ファイルまたはディレクトリへのハンドルがまだ開いている (使用中) ため、削除できない可能性があります。

Directory.Delete(string);

http://msdn.microsoft.com/en-us/library/62t64db3.aspx

UnauthorizedAccessException

呼び出し元に必要な権限がありません。

于 2013-04-19T14:06:47.417 に答える
0

コピー操作の後、ストリームを適切に閉じることができなかったと思います。つまり、@bland で説明されているように、ファイルへのハンドルをまだ保持しています。

IDisposable をタイムリーに破棄するようにしてください。そうすれば、この問題は解決する可能性があります。

于 2013-04-19T14:10:34.400 に答える
0

削除しようとしているディレクトリが読み取り専用である可能性があります。したがって、ReadOnly 属性を false に設定し、同じものを削除すると機能します。

例えば:

var di = new DirectoryInfo("SomeFolder");
di.Attributes &= ~FileAttributes.ReadOnly;
于 2013-04-19T14:09:50.900 に答える