C# 判断文件夹是否可写

xiangaylian 2013-08-01 06:06:32
如题!不通过抛出异常的方式,有没有直接获取文件夹此属性的方法。
...全文
544 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
火拼阿三 2013-08-02
  • 打赏
  • 举报
回复

   private static  List<FileSystemRights> GetQuanXian()
        {
            List<FileSystemRights> ret = new List<FileSystemRights>();
            DirectorySecurity dirSec = Directory.GetAccessControl(@"d:\\test.txt", AccessControlSections.All);
            AuthorizationRuleCollection rules = dirSec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)); 
            foreach (FileSystemAccessRule rule in rules)
            {
                ret.Add(rule.FileSystemRights);
            }
            return ret;
        }  
ret里面就是各个帐号对该目录的访问权限,你在里面判断一下就知道了,格式是这样的:ReadData | WriteData | AppendData | ReadExtendedAttributes | WriteExtendedAttributes | ExecuteFile | DeleteSubdirectoriesAndFiles | ReadAttributes | WriteAttributes | Delete | ReadPermissions | ChangePermissions | TakeOwnership | Synchronize
xiangaylian 2013-08-02
  • 打赏
  • 举报
回复
引用 1 楼 vb763305825 的回复:
[code=csharp] [code]
不通过不活异常的方法,有没有直接读权限的方法,我只要读和写权限。
  • 打赏
  • 举报
回复
  //
        // 摘要:
        //     获取 System.Security.AccessControl.DirectorySecurity 对象,该对象封装当前 System.IO.DirectoryInfo
        //     对象所描述的目录的访问控制列表 (ACL) 项。
        //
        // 返回结果:
        //     一个 System.Security.AccessControl.DirectorySecurity 对象,该对象封装此目录的访问控制规则。
        //
        // 异常:
        //   System.SystemException:
        //     未能找到或修改该目录。
        //
        //   System.UnauthorizedAccessException:
        //     当前进程不具有打开该目录的权限。
        //
        //   System.IO.IOException:
        //     打开目录时发生 I/O 错误。
        //
        //   System.PlatformNotSupportedException:
        //     当前操作系统不是 Microsoft Windows 2000 或更高版本。
        //
        //   System.UnauthorizedAccessException:
        //     目录为只读。- 或 - 在当前平台上不支持此操作。- 或 - 调用方没有所要求的权限。
        public DirectorySecurity GetAccessControl();

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧