tags:

views:

80

answers:

3

Hi,

In my app I have a dialog in which the user can select a database backup location. If want to warn the user if the location he/she selected is "probably not secure".

I want to consider the following locations secure:

  1. When selected folder is on a network (either by a mapped drive (e.g. "I:\Backup") or UNC notation (\server2\backup)
  2. 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 the DriveInfo class, but it only handles drive letter, not UNC

A: 

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...

Spence
A: 

You might have better luck in looking at this article on CodeGuru about drive mappings, also have a look here as well that can retrieve disk space on a UNC drive... The code should be easy to modify to find out what is the path on the network...

Hope this helps, Best regards, Tom.

tommieb75
+3  A: 

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"));
    }
}
Darin Dimitrov