在我的应用程序中,我有一个对话框,用户可以在其中选择数据库备份位置。
我想警告用户他/她选择的位置是否“可能不安全”。检查路径是否在网络上
我要考虑以下位置固定:
- 当选择的文件夹是一个网络
(或者通过映射的驱动器(I:\Backup
)或UNC符号(\\server2\backup
)) - 选择当文件夹上与数据库文件夹位于不同的物理磁盘上
如何获取有关所选文件夹的此类信息?
我知道DriveInfo
类,但它只处理驱动器号,而不是UNC路径。
在我的应用程序中,我有一个对话框,用户可以在其中选择数据库备份位置。
我想警告用户他/她选择的位置是否“可能不安全”。检查路径是否在网络上
我要考虑以下位置固定:
I:\Backup
)或UNC符号(\\server2\backup
))如何获取有关所选文件夹的此类信息?
我知道DriveInfo
类,但它只处理驱动器号,而不是UNC路径。
看一下DirectoryInfo
的对象。在选定的路径上打开一个,你可以检查很多东西。也许你可能想要获取DirectorySecurity
并检查路径是否被锁定。
积极主动的程序员可能会为他/她的应用程序备份创建一个新的文件夹,并创建一个强大的ACL自己...
在PathIsNetworkPath功能请看:
class Program
{
[DllImport("shlwapi.dll")]
private static extern bool PathIsNetworkPath(string pszPath);
static void Main(string[] args)
{
Console.WriteLine(PathIsNetworkPath("i:\Backup"));
}
}
仅供参考:该函数不验证指定的网络资源是否存在,当前是否可访问,或者用户是否有足够的权限来访问它。 – 2015-11-17 17:01:29
嗨Robbert!如果其中一个答案提供了一个可行的解决方案,请您接受这个答案作为答案,只是这个问题不再显示为'未答复'。谢谢! – 2015-11-17 15:42:11