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

 

posted @ 2022-03-31 14:22  jeff151013  阅读(147)  评论(0编辑  收藏  举报