4
いくつかのフォルダのアクセス許可を(Read-Onlyに設定して)ReadWriteExecuteに変更したい!フォルダのアクセス許可を変更する
私はこのコードを書いたが、フォルダのアクセス許可は読み取り専用、まだです:
private void ChangePermissions(string folder)
{
string userName = Environment.UserName;
FileSystemAccessRule accessRule = new FileSystemAccessRule(userName, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit
| InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
DirectoryInfo directoryInfo = new DirectoryInfo(folder);
DirectorySecurity directorySec = directoryInfo.GetAccessControl();
directorySec.AddAccessRule(accessRule);
directoryInfo.SetAccessControl(directorySec);
}
私はDirectory.Delete(folder, true)
で、このディレクトリを削除したい場合は、私はこのエラーメッセージを取得:
「へのアクセスをパス 'エントリ'が拒否されました。
もちろん、権限は読み取り専用です。ここで何が間違っていますか?
ありがとうございました!
同じエラーの。 'entries'パスはフォルダ内のファイルです。再帰的にパーミッションを変更する必要がありますか? (でも、なぜRead-Onlyフラグがまだルートフォルダに設定されているのかわかりません) – leon22
ファイル権限を再帰的に変更する必要がある場合は、このSOの投稿が役に立ちます:http://stackoverflow.com/questions/191399/how-それぞれのフォルダ内ファイルを使用するための読み取り専用ファイル属性を変更する – Robbie
Thx。 http://stackoverflow.com/questions/191399/how-do-i-change-the-read-only-file-attribute-for-each-file-in-a-folder-using-cからのコードでうまくいった! – leon22