2013-06-19 85 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; 

我希望這可以幫助。