如何将文件路径转换为短路径(8.3)?

时间:2016-01-06 12:02:09

标签: java

有没有办法直接通过Java API将长文件路径转换为short(8.3 format)(即不使用命令行)?

例如,它应该将C:\Program Files\Java转换为C:\Progra~1\Java

1 个答案:

答案 0 :(得分:0)

您可以使用JNA

中所述的SO answer示例

使用JNA的Java

import com.sun.jna.Native;
import com.sun.jna.platform.win32.Kernel32;

public class LongToShort {

    public static String GetShortPathName(String path) {
        char[] result = new char[256];
        Kernel32.INSTANCE.GetShortPathName(path, result, result.length);
        return Native.toString(result);
    }

    // usage: java LongToShort "C:\Program Files (x86)\Java\jdk1.6.0_45"
    public static void main(String[] args) {
        System.out.println(GetShortPathName(args[0]));
    }
}