You need the pure server address of a remote directory mapped to a drive letter? Try this:
[DllImport("Mpr.dll", CharSet = CharSet.Auto)]
private static extern int WNetGetConnection(
[MarshalAs(UnmanagedType.LPTStr)] string localName,
[MarshalAs(UnmanagedType.LPTStr)] StringBuilder remoteName,
ref int length);
public static String GetServerPath(char driverLetter)
{
try
{
int length = 1024;
StringBuilder result = new StringBuilder(length);
WNetGetConnection(driverLetter + ":", result, ref length);
return result.ToString();
}
catch
{
}
return null;
}
public static String GetServerPath(String filename)
{
if (filename.Length > 1 && filename[1] == ':')
{
String serverpath = GetServerPath(filename[0]);
if (serverpath != null && serverpath.Trim().Length > 0)
filename = serverpath + filename.Substring(2);
}
return filename;
}