有沒有通過.net框架確定文件夾是否共享的方法?確定文件夾是否在.NET中共享
Diretory,DirectoryInfo或FileAttributes都沒有任何相應的字段。
我忘了提的一件事是我想檢查網絡共享。但我會調查WMI的東西。
有沒有通過.net框架確定文件夾是否共享的方法?確定文件夾是否在.NET中共享
Diretory,DirectoryInfo或FileAttributes都沒有任何相應的字段。
我忘了提的一件事是我想檢查網絡共享。但我會調查WMI的東西。
您可以使用WMI Win32_Share。 看看:
http://www.gamedev.net/community/forums/topic.asp?topic_id=408923
顯示查詢,創建和刪除共享文件夾的樣本。
嘗試使用WMI並執行SELECT * FROM Win32_ShareToDirectory
查詢。
您可以使用WMI Win32_Share獲得所有共享文件夾的列表,並查看您要查找的文件夾是否位於它們之間。這裏有一個片段,它可以幫助您與此:
public static List<string> GetSharedFolders()
{
List<string> sharedFolders = new List<string>();
// Object to query the WMI Win32_Share API for shared files...
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from win32_share");
ManagementBaseObject outParams;
ManagementClass mc = new ManagementClass("Win32_Share"); //for local shares
foreach (ManagementObject share in searcher.Get()){
string type = share["Type"].ToString();
if (type == "0") // 0 = DiskDrive (1 = Print Queue, 2 = Device, 3 = IPH)
{
string name = share["Name"].ToString(); //getting share name
string path = share["Path"].ToString(); //getting share path
string caption = share["Caption"].ToString(); //getting share description
sharedFolders.Add(path);
}
}
return sharedFolders;
}
請注意,我狠狠地從這個link複製粘貼字節
你能告訴我如何檢查共享文件夾在本地電腦存在。我需要從Pocket PC進行測試(使用.net精簡框架),請參閱https://stackoverflow.com/questions/25710537/check-shared-path-is-available-in-pc – user2681579 2014-09-07 13:23:29
對皮膚這隻貓還有一個方法是使用PowerShell的(如果你有的話安裝)來調用WMI調用,包括對System.Management.Automation參考,它最likley在\ Program Files文件\引用程序集\微軟\ windowspowershell
private void button1_Click(object sender, EventArgs e)
{
Runspace rs = RunspaceFactory.CreateRunspace();
rs.Open();
Pipeline pl = rs.CreatePipeline();
pl.Commands.AddScript("get-wmiobject win32_share");
StringBuilder sb = new StringBuilder();
Collection<PSObject> list = pl.Invoke();
rs.Close();
foreach (PSObject obj in list)
{
string name = obj.Properties["Name"].Value as string;
string path = obj.Properties["Path"].Value as string;
string desc = obj.Properties["Description"].Value as string;
sb.AppendLine(string.Format("{0}{1}{2}",name, path, desc));
}
// do something with the results...
}
你能告訴我如何檢查共享文件夾在本地電腦存在。我需要從袖珍電腦(使用.net的緊湊框架),請參閱此https://stackoverflow.com/questions/25710537/check-shared-path-is-a-p-p-p – user2681579 2014-09-07 13:23:05