欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

C#文件夹权限操作工具类

发布时间:2025/6/17 66 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C#文件夹权限操作工具类 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.AccessControl; using System.Text; using System.Threading.Tasks;namespace CvNetVideo.Play {/// <summary>/// 目录权限辅助类/// </summary>public class DictionaryHelper{/// <summary>/// 需要足够的权限才能执行此操作:Get filepath rights/// </summary>/// <param name="path"></param>/// <returns></returns>public static List<FileSystemRights> GetRights(string path){List<FileSystemRights> ret = new List<FileSystemRights>();DirectorySecurity dirSec = Directory.GetAccessControl(path, AccessControlSections.All);AuthorizationRuleCollection rules = dirSec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount));foreach (FileSystemAccessRule rule in rules){ret.Add(rule.FileSystemRights);}return ret;}//public static void AccessExample() {// try// {// string DirectoryName = "TestDirectory";// Console.WriteLine("Adding access control entry for " + DirectoryName);// // Add the access control entry to the directory.// AddDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);// Console.WriteLine("Removing access control entry from " + DirectoryName);// // Remove the access control entry from the directory.// RemoveDirectorySecurity(DirectoryName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AccessControlType.Allow);// Console.WriteLine("Done.");// }// catch (Exception e)// {// Console.WriteLine(e);// }// Console.ReadLine();//}// Adds an ACL entry on the specified directory for the specified account.public static void AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType){// Create a new DirectoryInfo object.DirectoryInfo dInfo = new DirectoryInfo(FileName);// Get a DirectorySecurity object that represents the // current security settings.DirectorySecurity dSecurity = dInfo.GetAccessControl();// Add the FileSystemAccessRule to the security settings. dSecurity.AddAccessRule(new FileSystemAccessRule(Account,Rights,ControlType));// Set the new access settings.dInfo.SetAccessControl(dSecurity);}// Removes an ACL entry on the specified directory for the specified account.public static void RemoveDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType){// Create a new DirectoryInfo object.DirectoryInfo dInfo = new DirectoryInfo(FileName);// Get a DirectorySecurity object that represents the // current security settings.DirectorySecurity dSecurity = dInfo.GetAccessControl();// Add the FileSystemAccessRule to the security settings. dSecurity.RemoveAccessRule(new FileSystemAccessRule(Account,Rights,ControlType));// Set the new access settings.dInfo.SetAccessControl(dSecurity);}} }

 

转载于:https://www.cnblogs.com/boonya/p/9013564.html

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的C#文件夹权限操作工具类的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。