【C# IO操作】C#修改檔案或資料夾的許可權,為指定使用者、使用者組新增完全控制權限
阿新 • • 發佈:2021-11-18
程式碼實現
在C盤新增一個資料夾,並在資料夾內部,新建一個文字檔案,如圖所示:
該資料夾下,新建一個文字檔案,如圖所示:
為檔案新增完全控制權限:
/// <summary>
/// 為檔案新增users,everyone使用者組的完全控制權限
/// </summary>
/// <param name="filePath"></param>
static void AddSecurityControll2File(string filePath)
{
//獲取檔案資訊
FileInfo fileInfo = new FileInfo(filePath);
//獲得該檔案的訪問許可權
System.Security.AccessControl.FileSecurity fileSecurity = fileInfo.GetAccessControl();
//新增ereryone使用者組的訪問許可權規則 完全控制權限
fileSecurity.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));
//新增Users使用者組的訪問許可權規則 完全控制權限
fileSecurity.AddAccessRule(new FileSystemAccessRule("Users", FileSystemRights.FullControl, AccessControlType.Allow));
//設定訪問許可權
fileInfo.SetAccessControl(fileSecurity);
}
為資料夾新增完全控制權限
/// <summary>
///為資料夾新增users,everyone使用者組的完全控制權限
/// </summary>
/// <param name="dirPath"></param>
static void AddSecurityControll2Folder(string dirPath)
{
//獲取資料夾資訊
DirectoryInfo dir = new DirectoryInfo(dirPath);
//獲得該資料夾的所有訪問許可權
System.Security.AccessControl.DirectorySecurity dirSecurity = dir.GetAccessControl(AccessControlSections.All);
//設定檔案ACL繼承
InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;
//新增ereryone使用者組的訪問許可權規則 完全控制權限
FileSystemAccessRule everyoneFileSystemAccessRule = new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow);
//新增Users使用者組的訪問許可權規則 完全控制權限
FileSystemAccessRule usersFileSystemAccessRule = new FileSystemAccessRule("Users", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow);
bool isModified = false;
dirSecurity.ModifyAccessRule(AccessControlModification.Add, everyoneFileSystemAccessRule, out isModified);
dirSecurity.ModifyAccessRule(AccessControlModification.Add, usersFileSystemAccessRule, out isModified);
//設定訪問許可權
dir.SetAccessControl(dirSecurity);
}
程式設計是個人愛好