[英]How do I enumerate web folders in C# that are not mapped to network drives (like “net use”)
通過命令行,可以不使用任何參數即可調用net use ,並獲取本地計算機上的計算機連接列表。 這提供了映射的網絡驅動器的列表,以及使用net use
命令定義的到本地網絡共享和Web文件夾的網絡連接。
可以按照以下步驟創建到本地網絡共享的網絡連接:
net use \\MyComputerName\MyShareName
可以按照以下步驟創建與Web文件夾(例如WebDAV或SharePoint)的網絡連接:
net use http://MySharePoint:12345/Shared%20Documents/MyFolder
調用net use
將列出連接,如下所示:
C:\>net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
Unavailable Q: \\OldServer\OldShare Microsoft Windows Network
OK U: \\MyServerName\Name of Shared Folder
Microsoft Windows Network
Unavailable W: http://MyOldSharePoint Web Client Network
X: \\MyWebDavServer@12345\DavWWWRoot
Web Client Network
\\MySharePoint@12345\Shared%20Documents\MyFolder
Web Client Network
OK \\MyComputerName\MyShareName
Microsoft Windows Network
OK \\HostName\ShareName Microsoft Windows Network
The command completed successfully.
映射的網絡驅動器
我可以通過調用DriveInfo.GetDrives()
獲得C#中的映射驅動器。
與網絡共享的網絡使用連接
我能夠獲得通過PInvoke創建的網絡共享的連接以及Windows API NetUseEnum
。
與Web文件夾的網絡使用連接
我可以通過使用Windows API WNetOpenEnum
和WNetEnumResource
獲得Web客戶端網絡服務器的WNetEnumResource
,但是,這並不能為我提供共享名稱和文件夾的完整路徑。 它只會讓我獲得服務器名稱。
我還沒有找到一種方法來獲取Web客戶端網絡連接到網絡net use
網絡文件夾,您可以net use
網絡來定義網絡文件夾。
我確定必須有一個Windows API可以返回這些。 如果有人知道,請告知。 我當然希望避免使用窮人的解決方案,例如通過命令行進程調用net use
並解析其輸出。
注意:我不需要使用WMI的解決方案。
我非常確定Win32_LogicalDisk類應該包含您需要的信息,如果不嘗試注冊表,這兩種方法的示例都在CSharp-using-WMI中的“獲取或列出網絡共享”中
鏈接
https://msdn.microsoft.com/en-us/library/aa394173(v=vs.85).aspx
http://www.morgantechspace.com/2014/02/Get-or-List-Network-shares-in-CSharp-using-WMI.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.