.NET C#獲取指定長路徑的短路徑方式
直接上程式碼。
using System.Runtime.InteropServices;
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern int GetShortPathName(
[MarshalAs(UnmanagedType.LPTStr)] string path,
[MarshalAs(UnmanagedType.LPTStr)] StringBuilder short_path,
int short_len
);
/// <summary>
/// 返回指定長路徑的短路徑,要求該路徑必須在電腦中存在
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static string GetShortPath(string name)
{
int length = 0;
length = GetShortPathName(name, null, 0);
if (length == 0)
{
return name;
}
StringBuilder short_name = new StringBuilder(length);
length = GetShortPathName(name, short_name, length);
if (length == 0)
{
return name;
}
return short_name.ToString();
}
呼叫方式,直接呼叫GetShortPath方法即可