在java中重命名文件

时间:2013-09-12 06:21:04

标签: java file

我尝试使用我在此处找到的代码重命名文件:

File newFile = new File(oldFile.getParent(), "new-file-name.txt");
Files.move(oldFile, newFile);

现在,我做的是:

  private void stFiles() {
    System.out.println("sorting");
    File f = new File (getName());
    name = getName() + counter.toString();
    System.out.println(f.getName());
    File newFile = new File(f.getParent(), getName()+ ".jpg");
    try {
        Files.move(f, newFile);
    } catch (IOException ex) {
        System.out.println("made file");
    }
    counter +=1;
}

现在,我获得了“make file”打印,这意味着存在IO-Exception。但是,堆栈跟踪不可读。

这可能是什么原因?

3 个答案:

答案 0 :(得分:3)

您可以使用File对象中已存在的renameTo方法,如下所示:

File myOriginalFile=new File("myOriginalFile.txt");
    File myChangedFile=new File("myChangedFile.txt");



    if(myOriginalFile.renameTo(myChangedFile)){
        System.out.println("Rename operation succesful");
    }else{
        System.out.println("Rename operation failed");
    }

答案 1 :(得分:1)

首先,Java允许您使用java.io.File类中的renameTo(文件文件)方法重命名文件。

首先,获取要重命名的文件的引用。其次,使用File参数在该引用上调用renameTo()方法。  假设您有一个名为file1.txt的文件,并且您想将其重命名为file2.txt。

下面的代码行显示了它是如何完成的:

//Obtain the reference of the existing file
File oldFile = new File("file1.txt"); 

//Now invoke the renameTo() method on the reference, oldFile in this case
oldFile.renameTo(new File("file2.txt"));

答案 2 :(得分:1)

如果您的文件位于Windows共享上,则可能会遇到使用File.renameTo()方法的问题。

更强大的解决方案是使用Apache Commons IO FileUtils.moveFile()