简体   繁体   中英

How to rename file java ?

I'm trying to rename files in a folder. But instead all of them get deleted

File thisFolder = new File("C:\\ . . . ");  
        File [] filesArray = thisFolder.listFiles();          

        int filesArrayLength = filesArray.length; 
        if (filesArray != null) { 
             for (int i = 0; i < filesArrayLength; i++) { 
                filesArray[i].renameTo(new File("test" + i + ".pdf"));  
             } 
        }  

What am i doing wrong ? Why do all of the files get deleted instead of renamed

As @Pshemo pointed out you might be moving the file to the current directory. Try doing this instead. This will tell it to create the file under the given parent directory:

filesArray[i].renameTo(new File(thisFolder, "test" + i + ".pdf"));//thisFolder is your parent directory

String strFilePath= "C:/Users/";

public void renameFile(String strOldFileName, String strNewFileName) {
    File oldName = new File(strFilePath + "/" + strOldFileName);
    File newName = new File(strFilePath + "/" + strNewFileName);
    if (oldName.renameTo(newName)) {
        System.out.println("renamed");
    } else {
        System.out.println("Error");
    }
}

Code example for you to rename the List of files in a given directory as below, Suppose C:\\Test\\FileToRename isthe folder, the files which are listed under that has been renamed to test1.pdf,test2.pdf... etc..

File folder = new File("\\Test\\FileToRename");
        File[] listOfFiles = folder.listFiles();

        for (int i = 0; i < listOfFiles.length; i++) {

            if (listOfFiles[i].isFile()) {

                File f = new File("c:\\Test\\FileToRename\\"+listOfFiles[i].getName()); 

                f.renameTo(new File("c:\\Test\\FileToRename\\"+"test"+i+".pdf"));
            }
        }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM