Java 如何将文件路径转换为短(8.3)路径?
有没有办法直接通过JavaAPI(即不使用命令行)将长文件路径转换为短文件路径 例如,它应该将Java 如何将文件路径转换为短(8.3)路径?,java,Java,有没有办法直接通过JavaAPI(即不使用命令行)将长文件路径转换为短文件路径 例如,它应该将C:\Program Files\Java转换为C:\Progra~1\Java,您可以使用本文中所述的示例 使用JNA的Java import com.sun.jna.Native; import com.sun.jna.platform.win32.Kernel32; public class LongToShort { public static String GetShortPath
C:\Program Files\Java
转换为C:\Progra~1\Java
,您可以使用本文中所述的示例
使用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]));
}
}
不重复的可能重复,我正在寻找没有命令行的解决方案。要转换的路径是“C:\Program Files\Java”,类似于C:\Program~\JavaUhm。。。为什么?哪个API/工具现在不能处理“长”文件名?