网络位置应以8.3短格式显示路径。我需要将它们转换为长格式,以便在UNIX上使用。
由于它位于网络位置,因此我需要使用UNC路径。
有任何想法吗?
最佳答案
将short转换为long的答案是just a Google search away。这将适用于UNC路径only on Windows Vista and up(以及可能带有某些Service Pack的XP)。
using System;
using System.Runtime.InteropServices;
using System.Text;
public class _Main
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetLongPathName(
string path,
StringBuilder longPath,
int longPathLength
);
public static void Main()
{
StringBuilder longPath = new StringBuilder(255);
GetLongPathName(@"\\?\UNC\server\d$\MYTEMP~1\RESOUR~1\sql.txt", longPath, longPath.Capacity);
Console.WriteLine(longPath.ToString());
}
}