首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

如何判断一个目录是否有写入权限

2012-12-14 
怎么判断一个目录是否有写入权限?本帖最后由 vip123 于 2012-09-27 18:28:22 编辑要在一个目录里(本机,或

怎么判断一个目录是否有写入权限?
本帖最后由 vip123 于 2012-09-27 18:28:22 编辑 要在一个目录里(本机,或者其它机器的共享目录)创建一个新的子目录,不知道是否能在这个目录里创建新的子目录,所以要在创建之前做一下判断。请问有什么直接的判断方法没有?

(不要通过 try 方法尝试先去创建,报错表明是只读的)
[最优解释]
using System;
using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string directory = @"C:\downloads";

            DirectoryInfo di = new DirectoryInfo(directory);

            DirectorySecurity ds = di.GetAccessControl();

            foreach (AccessRule rule in ds.GetAccessRules(true, true, typeof(NTAccount)))
            {
                Console.WriteLine("Identity = {0}; Access = {1}", rule.IdentityReference.Value, rule.AccessControlType);
            }
        }
    }
}
[其他解释]
貌似有个 


File.GetAccessControl(filePath)=>FileSecurity
FileSecurity.GetAccessRules(
bool includeExplicit,//true
bool includeInherited,//true
Type targetType//typeof(SecurityIdentifier)
)=>System.Security.AccessControl.AuthorizationRuleCollection
//遍历System.Security.AccessControl.AuthorizationRuleCollection
//检查每个子元素,如果是Full...表示具有所有权限。
File.GetAttributes=>FileAttributes

//此方法无法判断文件是否死锁了



[其他解释]

DirectoryInfo dirinfo = new DirectoryInfo(@"c:\test");

            System.Security.AccessControl.DirectorySecurity sec = dirinfo.GetAccessControl();

            foreach (FileSystemAccessRule rule in sec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
            {
                Console.WriteLine("----------------------------------");
                Console.WriteLine(rule.IdentityReference.Value);
                if ((rule.FileSystemRights & FileSystemRights.Read) != 0)
                    Console.WriteLine(rule.FileSystemRights.ToString());
            }

            Console.Read();

每个用户对应的权限


[其他解释]
我想判断的目录
[其他解释]
顶起来,有人知道吗
[其他解释]
还是没有弄明白。我只想知道当前已经打开的共享文件夹有没有写入权限。
[其他解释]
能不能写个函数,能读写就返回True,不能就返回false?

热点排行