有没有办法直接通过Java API将长文件路径转换为short(8.3 format)(即不使用命令行)?
例如,它应该将C:\Program Files\Java
转换为C:\Progra~1\Java
。
答案 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]));
}
}