gpt4 book ai didi

java - 有没有办法在 Java 中生成文件名的 8.3 或 'short' (Windows) 版本?

转载 作者:可可西里 更新时间:2023-11-01 09:50:10 25 4
gpt4 key购买 nike

在我们的应用程序中,我们允许用户打开文件和目录。

Java 6 为我们提供了...

java.awt.Desktop.getDesktop().open(file);

效果很好。不过由于需要保证Java 5的兼容性,我们也实现了在cmd.exe中调用start命令打开文件的方法...

String command = "cmd.exe start ...";
Runtime.getRuntime().exec(command);

这就是问题所在。 start 命令似乎只能处理8.3文件名,这意味着任何非短 (8.3) 文件/目录名都会导致 start 命令失败。

有没有一种简单的方法可以生成这些短名称?或者任何其他解决方法?

最佳答案

尝试这样的事情

import java.io.IOException;

class StartExcel {
public static void main(String args[])
throws IOException
{
String fileName = "c:\\temp\\xls\\test2.xls";
String[] commands = {"cmd", "/c", "start", "\"DummyTitle\"",fileName};
Runtime.getRuntime().exec(commands);
}
}

将虚拟标题传递给 Windows 启动命令很重要,因为文件名可能包含空格。这是一个特点。

关于java - 有没有办法在 Java 中生成文件名的 8.3 或 'short' (Windows) 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com