我确实需要你的帮助。
我有这段代码:
File f1 = openFile("Choose file one",
JFileChooser.OPEN_DIALOG);
if (f1 == null)
return;
File f2 = openFile("Choose file two",
JFileChooser.OPEN_DIALOG);
if (f2 == null)
return;
File f3 = openFile("Choose destination",
JFileChooser.SAVE_DIALOG);
if (f3 == null)
return;
JOptionPane.showMessageDialog(this, "Files are now joined in"
+ f3.getName());
我想摆脱这个:
File f3 = openFile("Choose destination",
JFileChooser.SAVE_DIALOG);
if (f3 == null)
return;
并以这种方式使用以下代码语句,但不幸的是我收到错误..!
OptionPane.showMessageDialog(this, "Files are now joined in"
+ f1.getName() + f2.getName());
我该如何解决这个问题?
答案 0 :(得分:1)
如果要添加文件名,则需要先从扩展名中拆分名称。使用'lastIndexOf method to find the '.' and
substring`只获取名称部分:
...
if (f2 == null)
return;
String newName = fileName(f1) + "+" + f2.getName(); // assuming extension of f2
// or newName = fileName(f1) + "+" + fileName(f2) + ".wav";
File f3 = new File(newName);
...
private static String fileName(File file) {
String name = file.getName();
int index = name.lastIndexOf('.');
if (index != -1) {
name = name.substring(0, index);
}
return name;
}
类似于获取扩展名(name.substring(index+1)
)并检查两个扩展名是否相等(如果需要)。
英语不是我的第一语言(不是第二语言),欢迎更正
修改强>
但我不相信只加入两个WAV会产生一个有效的WAV。我怀疑你需要从第二个WAV中删除标题并实现第一个...
答案 1 :(得分:0)
你真的需要更具体,你会得到什么错误?你的最终代码如何看起来像是什么?
如果在删除声明后引用f3,则会出现错误,同样,如Mathew所述,您错过了JOptionPane中的“j”。
祝你好运答案 2 :(得分:0)
JOptionPane.showMessageDialog(this, "Files are now joined in"
+ f1.getName() + f2.getName());
如果this
是Composite
的子类,应该编译。假设输入文件f1和f2为path/file1.wav
和path/file2.wav
,则消息将为
Files are now joined infile1.wavfile2.wav