C#の手順でいくつかのディレクトリ/ファイルをコピーしました。さて、メインディレクトリを削除したいと思います。
したがって、これは基本的なコードです:
dir.Delete(true);
しかし、私はUnauthorizedAccessException
(ファイルであるdirectorys.acrodataへのアクセスが拒否されたと思います)。
なんで?どうすれば強制できますか?
おそらく、1) セキュリティ権限が制限されていてファイルを削除できないか、2) ファイルまたはディレクトリへのハンドルがまだ開いている (使用中) ため、削除できない可能性があります。
Directory.Delete(string);
http://msdn.microsoft.com/en-us/library/62t64db3.aspx
UnauthorizedAccessException
呼び出し元に必要な権限がありません。
コピー操作の後、ストリームを適切に閉じることができなかったと思います。つまり、@bland で説明されているように、ファイルへのハンドルをまだ保持しています。
IDisposable をタイムリーに破棄するようにしてください。そうすれば、この問題は解決する可能性があります。
削除しようとしているディレクトリが読み取り専用である可能性があります。したがって、ReadOnly 属性を false に設定し、同じものを削除すると機能します。
例えば:
var di = new DirectoryInfo("SomeFolder");
di.Attributes &= ~FileAttributes.ReadOnly;