当前位置:
首页 >
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#文件夹权限操作工具类的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 数据结构与算法 —— 二叉树
- 下一篇: 四种Sandcastle方法生成c#.n