VB.NET
Public Shared Function GetLongPath(ByVal path As String) As String
Dim root As String = System.IO.Path.GetPathRoot(path)
Dim folders As String() = path.Substring(root.Length). _
Split(System.IO.Path.DirectorySeparatorChar)
Dim res As String = root
Dim name As String
For Each name In folders
Dim di = New DirectoryInfo(res)
Dim fsi As System.IO.FileSystemInfo() = _
di.GetFileSystemInfos(name)
If fsi.Length = 1 Then
res = fsi(0).FullName
Else
Throw New Exception("ERROR")
End If
Next name
Return res
End Function
C#public static string GetLongPath(string path)
{
string root = System.IO.Path.GetPathRoot(path);
string[] folders = path.Substring(root.Length)
.Split(System.IO.Path.DirectorySeparatorChar);
string res = root;
foreach (string name in folders)
{
System.IO.DirectoryInfo di = new DirectoryInfo(res);
System.IO.FileSystemInfo[] fsi = di.GetFileSystemInfos(name);
if (fsi.Length == 1)
res = fsi[0].FullName;
else
throw new Exception("ERROR");
}
return res;
}