2
我有一個Winform與FolderBrowserDialog
從網絡驅動器中選擇一個文件夾。問題是它返回驅動器號(X:\Folder...
)而不是網絡路徑(\\Network\Projects\Folder...
)。我如何獲得網絡路徑?獲取網絡路徑不從FolderBrowserDialog驅動器號
我有一個Winform與FolderBrowserDialog
從網絡驅動器中選擇一個文件夾。問題是它返回驅動器號(X:\Folder...
)而不是網絡路徑(\\Network\Projects\Folder...
)。我如何獲得網絡路徑?獲取網絡路徑不從FolderBrowserDialog驅動器號
快速和骯髒的代碼將顯示路徑作爲MessageBox中的網絡路徑。你可能想要添加額外的檢查和/或重構這一點。
var dialog = new OpenFileDialog();
dialog.ShowDialog();
var path = dialog.FileName;
using (var managementObject = new ManagementObject())
{
managementObject.Path = new ManagementPath($"Win32_LogicalDisk='{path.Substring(0,2)}'");
var driveType = (DriveType)(uint)managementObject["DriveType"];
var networkPath = Convert.ToString(managementObject["ProviderName"]);
if (driveType == DriveType.Network)
{
MessageBox.Show(path.Replace(path.Substring(0, 3), networkPath));
}
}
MessageBox.Show(path);
我得到一個System.TypeInitializationException在'var driveType =(DriveType)(uint)managementObject [「DriveType」];'' –
如果選擇未映射到驅動器的網絡位置,會發生什麼情況? –
看到這個問題,答案類似於你要找的東西:(http://stackoverflow.com/questions/31818511/how-to-get-folderbrowserdialog-to-show-only-network) – Peter4499
@AdamV我不確定如果位置未被映射會發生什麼情況。爲我的目的,假設所有網絡位置都被映射。 – Programmer