简体   繁体   English

从 FolderBrowserDialog 获取网络路径而不是驱动器号

[英]Get network path not drive letter from FolderBrowserDialog

I have a winform with a FolderBrowserDialog to choose a folder from a network drive.我有一个带有FolderBrowserDialog的 winform 可以从网络驱动器中选择一个文件夹。 The issue is that it returns the drive letter ( X:\\Folder... ) rather than the network path ( \\\\Network\\Projects\\Folder... ).问题是它返回驱动器号( X:\\Folder... )而不是网络路径( \\\\Network\\Projects\\Folder... )。 How can I get the network path?如何获取网络路径?

Quick and dirty code that will show the path as a network path in a MessageBox.将路径显示为 MessageBox 中的网络路径的快速而肮脏的代码。 You may want to add additional checks and/or restructure this a bit.您可能需要添加额外的检查和/或稍微重构一下。

using System.Management;

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM