2015-12-13 39 views
0

我正在尝试重命名文件夹中的文件。但相反,他们都被删除如何重命名文件java?

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")); 
      } 
     } 

我在做什么错?为什么所有的文件被删除而不是重命名

+5

您确定删除了洁具吗?它看起来像'新的文件(“test”+ i +“.pdf”)''''''''''''''''''''''''''''因为您使用了相对路径。要查看哪个位置,用'new File(“。”)'创建位置的绝对路径。 – Pshemo

+0

您应该也可以使用'java.nio' API,因为旧的API太糟糕了,那就是错误报告。以你的情况为例,['File.renameTo'](https://docs.oracle.com/javase/7/docs/api/java/io/File.html#renameTo(java.io.File))返回一个表示成功的“boolean” - 你忽略的。 –

+0

谢谢你是一个相对路径问题 – Emily

回答

2

正如@Pshemo指出的那样,您可能正在将文件移动到当前目录。请尝试这样做。这将告诉它给定的父目录下创建文件:

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

代码示例,为您的文件列表重命名为低于给定的目录, 假设在C:\测试\ FileToRename isthe文件夹时,下面列出的文件已被重命名为test1.pdf,test2.pdf ...等。

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")); 
      } 
     } 
1

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"); 
    } 
}