Get network path not drive letter from FolderBrowserDialog

ε祈祈猫儿з 提交于 2019-12-12 17:06:08

问题


I have a winform with a FolderBrowserDialog to choose a folder from a network drive. The issue is that it returns the drive letter (X:\Folder...) rather than the network path (\\Network\Projects\Folder...). How can I get the network path?


回答1:


Quick and dirty code that will show the path as a network path in a MessageBox. You may want to add additional checks and/or restructure this a bit.

        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);


来源:https://stackoverflow.com/questions/37687039/get-network-path-not-drive-letter-from-folderbrowserdialog

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!