首页 > 解决方案 > 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));
               }
           }
       }

   }
}

标签: java

解决方案


我解决了。重命名的文件必须保存在不同的文件夹中,因为系统不会重命名原始文件。这是一个暂时的解决方案。将来我会搜索一些东西来优化算法


推荐阅读