.net中的长路径

时间:2013-06-19 13:53:39

标签: .net path long-integer

我有问题

当我想访问Directory Security时,我的路径长度超过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

2 个答案:

答案 0 :(得分:0)

请查看这个图书馆,这对我来说更适合长路径

Link Here

答案 1 :(得分:0)

你可以看看彼得的图书馆in here。这将为您提供System.IO.PathTooLongException

LongPaths允许您的代码通过提供以下System.IO类型的替换来支持长路径:FileInfoDirectoryInfoFileSystemInfoFileInfo,{ {1}},DirectoryInfo

您可以使用以下别名替换FileSystemInfo类型

System.IO

我希望这会有所帮助。