Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net net中的长路径_.net_Path_Long Integer - Fatal编程技术网

.net net中的长路径

.net net中的长路径,.net,path,long-integer,.net,Path,Long Integer,我在工作上有问题 当我想访问目录安全性并且我的路径长度超过260个字符时 所以我从这个链接得到了解决方案 但是,当我尝试访问目录的GetAccessControl()时,会出现“未实现”错误,因此我希望为GetAccessControl()或任何其他解决方案实现非托管代码 [DllImport("mscorlib.dll", CharSet = CharSet.Unicode)] [return: MarshalAs(UnmanagedType.I4)] static extern int G

我在工作上有问题

当我想访问目录安全性并且我的路径长度超过260个字符时 所以我从这个链接得到了解决方案

但是,当我尝试访问目录的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

请签出这个库,它对我使用长路径更加完美


你可以看看彼得的图书馆。这将帮助您处理
System.IO.PathTooLongException

长路径允许您的代码通过替换以下
System.IO
类型来支持长路径:
FileInfo
DirectoryInfo
FileSystemInfo
FileInfo
DirectoryInfo

您可以使用以下别名替换
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;
我希望这能有所帮助。

Mscorlib.dll是一个托管程序集,它不会导出任何可以pinvoke的函数。现在还不清楚你想做什么,但你的方法是不可能的。