java - Java重命名文件
问题描述
我有一个文件列表,我想根据特定规则重命名它们。我用java编写了这段代码,它运行但它不起作用。它不会重命名文件。请帮我。
import java.io.File;
public class ChangeName {
public static void main(String[] args) {
File cartella=new File("D:\\LibriInformatica");
File[] listaDiFile=cartella.listFiles();
for (int i=0; i<listaDiFile.length;i++){
if(listaDiFile[i].isFile()){
String[] titolo=listaDiFile[i].toString().split("\\\\");
String[] nomeSplit2;
//Regole di split e rinomino
if(titolo[2].contains("( PDFDrive )")){//rinomino il file se contiene la parola ( PDFDrive eliminandola)
System.out.println("Nome file originale: "+listaDiFile[i].toString());
String[] rinomino1= titolo[2].split("PDFDrive");
titolo[2]=rinomino1[0]+".pdf";
String nomeDefinitivo="D:\\LibriInformatica"+titolo[2];
listaDiFile[i].renameTo(new File(nomeDefinitivo));
System.out.println("Nome file cambiato: "+listaDiFile[i].toString());
}
if(titolo[2].contains("_")){//Rinomino eliminando _
String[] rinomino1= titolo[2].split("_");
titolo[2]=rinomino1[0]+".pdf";
String nomeDefinitivo="D:\\LibriInformatica"+titolo[2];
listaDiFile[i].renameTo(new File(nomeDefinitivo));
}
if(titolo[2].contains("-")){//Rinomino eliminando -
String[] rinomino1= titolo[2].split("-");
titolo[2]=rinomino1[0]+".pdf";
String nomeDefinitivo="D:\\LibriInformatica"+titolo[2];
listaDiFile[i].renameTo(new File(nomeDefinitivo));
}
}
}
}
}
解决方案
我解决了。重命名的文件必须保存在不同的文件夹中,因为系统不会重命名原始文件。这是一个暂时的解决方案。将来我会搜索一些东西来优化算法
推荐阅读
- flutter - Flutter:架构 arm64 的未定义符号
- javascript - 没有选项进入动态填充的选择标签
- javascript - PostgreSQL:从 CSV 文件读取数据时出现 INSERT 错误
- performance - 如果来源太多,预连接来源的顺序是否重要
- angular - 当有待处理的请求时,我的应用程序卡住了
- c# - 20 倍的性能差异 Interlocked.Read 与 Interlocked.CompareExchange 虽然都使用 lock cmpxchg 实现
- python - python(烧瓶)中的给定模块错误中没有名称
- linux - 对于给定条件,使用 AWK 将一个文件中的列添加到另一个文件中
- linux - 如何解决无法解析“proxy.iiit.ac.in”
- java - 更改输入日期的日期格式并仅传递给函数实际日期