我有这些文件:
Hingga Akhir Nanti - Allycats_part001
, Hingga Akhir Nanti - Allycats_part002
, Hingga Akhir Nanti - Allycats_part003
我想删除这些文件"_part001"
并将其替换.mp3
为文件夹中所有文件的扩展名..
关于如何在 Java 中做到这一点的任何想法?
我有这些文件:
Hingga Akhir Nanti - Allycats_part001
, Hingga Akhir Nanti - Allycats_part002
, Hingga Akhir Nanti - Allycats_part003
我想删除这些文件"_part001"
并将其替换.mp3
为文件夹中所有文件的扩展名..
关于如何在 Java 中做到这一点的任何想法?
我希望这个片段可以帮助你。
/**
* Pass your file names here as a comma separated values
* @param strs
* @return nothing
*/
public static void convertToMp3Extenesion(String... strs) {
for (String string : strs) {
File file = new File(string);
if (!file.exists()){
continue;
}
String replacedFileName = string.replaceAll("_part\\d+", ".mp3");
file.renameTo(new File(replacedFileName));
}
为了从一个目录中获取所有文件,您可以将上述代码段增强为,
/**
* pass your directory containg your files
* @param directory name
* @return nothing
*/
public static void convertToMp3Extenesion(String dir) {
File fileDir = new File(dir);
if (!fileDir.isDirectory()) {
System.err.println(dir +" is not a valid directory ");
return;
}
String[] strs = fileDir.list();
//use if for debug. not so good, if files are too many
//System.out.println("All Files "+Arrays.toString(strs));
for (String string : strs) {
File file = new File(dir+ File.separator+ string);
if (!file.exists()) {
continue;
}
String replacedFileName = string.replaceAll("_part\\d+", ".mp3");
file.renameTo(new File(dir+ File.separator+ replacedFileName));
}
您可以使用正则表达式myFileName.replaceAll("_part\\d+", ".mp3")
,然后使用文件的 renameTo() 方法应用新名称。
我相信它需要的字符串是文件的完整路径,所以要小心包含它(如果我在这方面是正确的)。