Check if path is on network
In my app I have a dialog in which the user can select a database backup location.
I want to warn the user if the location he/she selected is "probably not secure".I want to consider the following locations sec开发者_运维知识库ure:
- When selected folder is on a network
(either by a mapped drive (
I:\Backup
) or UNC notation(\\server2\backup
)) - When selected folder is on a different physical disk than the database folder
How can I get this kind of info about a selected folder?
I know about theDriveInfo
class, but it only handles drive letters, not UNC paths.Take a look at the PathIsNetworkPath function:
class Program
{
[DllImport("shlwapi.dll")]
private static extern bool PathIsNetworkPath(string pszPath);
static void Main(string[] args)
{
Console.WriteLine(PathIsNetworkPath("i:\Backup"));
}
}
Have a look at the DirectoryInfo
object. Open one on the selected path and you can check many things. Perhaps you might want to fetch the DirectorySecurity
and check if the path is locked down.
A proactive programmer might create a new folder for his/her application backup and create a strong ACL themselves...
精彩评论