gpt4 book ai didi

Java GetFile 在使用 SetFile 后返回不正确的文件名

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:10 25 4
gpt4 key购买 nike

我有一些 Java 代码:

public static String getSaveFilePath(String title2)
{
FileDialog fd = new FileDialog(new Frame(), "Save As...", 1);
fd.setFilenameFilter(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".mp3");
}
});
fd.setFile(title2 + ".mp3");
fd.setVisible(true);
String str3 = fd.getFile();
String str4 = fd.getDirectory();
if (str4 == null) return null;
str3 = str3.replace(".mp3", "");
str3 = str3 + ".mp3";
String str5 = str3;
File localFile = new File(str4, str5);
return localFile.getPath();
}

问题是当我使用 setFile() 将文件名设置为

NBA - In the Zone P.L. (Video by JESSExAKAxViCiOUS)

在显示对话框之前和显示对话框时,我将文件保存为 abc.mp3然后我再次使用 getFile(),我得到 SExAKAxViCiOUS).mp3 - 因为它应该返回我选择保存到的文件的名称,abc。 mp3.

有人能告诉我我做错了什么吗?另外,如果您有更好的跨平台解决方案来显示保存文件对话框,请与我分享。

最佳答案

我在使用 Java 1.7.0_21 时遇到了同样的问题。似乎每当您选择的文件名或路径短于您之前使用 setFile() 设置的文件名或路径时,新文件将作为目录 (!) 由 getDirectory() 返回,而 getFile() 返回前一个文件的其余部分文件名。使用 Java 1.6 时,它按预期工作,所以我猜这是 1.7 中的错误。

编辑:
固定于:

关于Java GetFile 在使用 SetFile 后返回不正确的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14972664/

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