2016-06-07 29 views
2

네트워크 드라이브에서 폴더를 선택하려면 FolderBrowserDialog과 함께 winform이 있습니다. 네트워크 경로 (\\Network\Projects\Folder...)가 아닌 드라이브 문자 (X:\Folder...)를 반환하는 것이 문제입니다. 네트워크 경로는 어떻게 얻을 수 있습니까?FolderBrowserDialog에서 드라이브 문자가 아닌 네트워크 경로 가져 오기

+1

드라이브에 매핑되지 않은 네트워크 위치를 선택하면 어떻게됩니까? –

+1

이 다른 질문보기, 답변은 당신이 찾고있는 것과 비슷합니다 : (http://stackoverflow.com/questions/31818511/how-to-get-folderbrowserdialog-to-show-only-network) – Peter4499

+0

@AdamV 위치가 매핑되지 않으면 어떻게 될지 잘 모르겠습니다. 내 목적으로 모든 네트워크 위치가 매핑되었다고 가정합니다. – Programmer

답변

2

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

''DriveType = (DriveType) (uint) '에 System.TypeInitializationException이 생겼습니다. managementObject [ "DriveType"];' –