2010-02-11 152 views
8

在我的應用程序中,我有一個對話框,用戶可以在其中選擇數據庫備份位置。
我想警告用戶他/她選擇的位置是否「可能不安全」。檢查路徑是否在網絡上

我要考慮以下位置固定:

  1. 當選擇的文件夾是一個網絡
    (或者通過映射的驅動器(I:\Backup)或UNC符號(\\server2\backup))
  2. 選擇當文件夾上與數據庫文件夾位於不同的物理磁盤上

如何獲取有關所選文件夾的此類信息?
我知道DriveInfo類,但它只處理驅動器號,而不是UNC路徑。

+0

嗨Robbert!如果其中一個答案提供了一個可行的解決方案,請您接受這個答案作爲答案,只是這個問題不再顯示爲'未答覆'。謝謝! – 2015-11-17 15:42:11

回答

0

看一下DirectoryInfo的對象。在選定的路徑上打開一個,你可以檢查很多東西。也許你可能想要獲取DirectorySecurity並檢查路徑是否被鎖定。

積極主動的程序員可能會爲他/她的應用程序備份創建一個新的文件夾,並創建一個強大的ACL自己...

17

PathIsNetworkPath功能請看:

class Program 
{ 
    [DllImport("shlwapi.dll")] 
    private static extern bool PathIsNetworkPath(string pszPath); 

    static void Main(string[] args) 
    { 
     Console.WriteLine(PathIsNetworkPath("i:\Backup")); 
    } 
} 
+0

僅供參考:該函數不驗證指定的網絡資源是否存在,當前是否可訪問,或者用戶是否有足夠的權限來訪問它。 – 2015-11-17 17:01:29