1. 程式人生 > 其它 >.NET C#獲取指定長路徑的短路徑方式

.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方法即可