当前位置:  开发笔记 > 编程语言 > 正文

在.net中转换为短路径的标准方法

如何解决《在.net中转换为短路径的标准方法》经验,为你挑选了1个好方法。

寻找标准的防错方法将"长名称"(如"C:\ Documents and settings")转换为等效的"短名称""C:\ DOCUME~1"

我需要这个来运行我的C#应用​​程序的外部进程.如果我用"长名称"中的路径提供它,它就会失败.



1> David Arno..:

如果您准备开始调用Windows API函数,则GetShortPathName()和GetLongPathName()提供此功能.

请参阅http://csharparticles.blogspot.com/2005/07/long-and-short-file-name-conversion-in.html

    const int MAX_PATH = 255;

    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    public static extern int GetShortPathName(
        [MarshalAs(UnmanagedType.LPTStr)]
         string path,
        [MarshalAs(UnmanagedType.LPTStr)]
         StringBuilder shortPath,
        int shortPathLength
        );

    private static string GetShortPath(string path) {
        var shortPath = new StringBuilder(MAX_PATH);
        GetShortPathName(path, shortPath, MAX_PATH);
        return shortPath.ToString();
    }

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有