2010-02-11 156 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