2013-06-19 56 views
2

当我想访问目录安全性,我的路径长度我有问题长路径在.NET

更多的则是260字符 所以我得到了解决办法从这个链接

http://blogs.msdn.com/b/bclteam/archive/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton.aspx

但当我尝试访问目录的GetAccessControl()时,它给出的错误没有实现,所以我想实现GetAccessControl()的非托管代码或任何其他解决方案,您有

[DllImport("mscorlib.dll", CharSet = CharSet.Unicode)] 
[return: MarshalAs(UnmanagedType.I4)] 
static extern int GetAccessControl(string lpPathName, IntPtr lpSecurityAttributes); 

public static int GetAccess(string dirPath) 
{ 
    return GetAccessControl(@"\\?\" + dirPath, IntPtr.Zero); 

} 
从这个类System.Security.AccessControl.DirectorySecurity

派生

+1

Mscorlib.dll是一个*托管*程序集,它不会导出任何可以固定的函数。目前还不清楚你想要做什么,但你的方法是不开始的。 –

回答

0

请结帐这个库,它是更多的则适合我与长路径的工作

Link Here

0

你可以看看彼得的图书馆in here。这将帮助你与System.IO.PathTooLongException

LongPaths让你的代码通过提供下列System.IO类型的替代品,以支持长路径:FileInfoDirectoryInfoFileSystemInfoFileInfoDirectoryInfoFileSystemInfo

喜欢,你可以更换System.IO类型与以下别名

using Path = Pri.LongPath.Path; 
using Directory = Pri.LongPath.Directory; 
using DirectoryInfo = Pri.LongPath.DirectoryInfo; 
using File = Pri.LongPath.File; 
using FileSystemInfo = Pri.LongPath.FileSystemInfo; 

我希望这可以帮助。