3

试图获取一个 mp3 文件并使用字符串变量重命名它。例如,我有一个古典音乐文件夹 C:/classical,我想要一首名为 vivaldi 的歌曲重命名为 FourSeasons。我想找到初始文件 C:/classical/vivaldi.mp3 的绝对路径,然后提供一个字符串“FourSeasons.mp3”,并将文件 C:/classical/vivaldi.mp3 更改为 C:/classical /四季.mp3。

我曾想过使用 renameTo 和文件编写器,但这些都没有给我想要的结果。RenameTo 代码:这将返回 false(重命名失败),并且往往会永久删除我的文件。

public static void main(String[] args) {
File mp3 = new File("C:/mp3.mp3");
boolean renamestatus = mp3.renameTo(new File("song.mp3"));
System.out.println(renamestatus);
}

我还尝试使用 FileReader 和 FileWriter 以新名称制作文件的精确副本。此方法输出一个 mp3 文件,该文件会跳过并且听起来与输入文件相去甚远 这是我的 fileWriter 代码:

File inputFile = new File("C:/mp3.mp3");
File outputFile = new File("C:/song.mp3");
FileReader in = new FileReader(inputFile);
FileWriter out = new FileWriter(outputFile);
int c;
while ((c = in.read()) != -1)
  out.write(c);
in.close();
out.close();
4

5 回答 5

5

我也面临同样的问题,

我使用新文件对象的绝对路径解决了它。

所以在你的情况下:

boolean renamestatus = mp3.renameTo(new File("song.mp3"));

应该

boolean renamestatus = mp3.renameTo(new File("C://song.mp3"));

其次,如果不使用绝对路径,您的文件不会被删除,而是会以新名称移动到项目的根文件夹中。

于 2013-12-04T14:39:58.937 回答
2

使用 renameTo 时,您需要指定文件要转到的路径。例如,您使用的原始路径是“C:/mp3.mp3”,您希望 renameTo 中的路径看起来像“C :/歌曲.mp3”。所以你的线看起来像这样。

boolean renamestatus = mp3.renameTo(new File("C:/song.mp3"));

希望这对你有帮助。

于 2011-06-01T08:17:36.277 回答
1

试试这样:

mp3.renameTo(new File("C:/song.mp3"));

你也可以看看这个这个答案。

于 2011-06-01T07:57:04.193 回答
1

FileReader并且FileWriter用于处理文本数据。

您的 MP3 文件是二进制数据,应该被视为二进制数据,因此您需要使用FileInputStreamandFileOutputStream进行读/写。

于 2011-06-01T07:59:01.970 回答
0

它没有删除原始文件,它工作正常,只需给出完整路径(源文件路径+新名称)

于 2016-02-09T04:16:37.773 回答