使用java重命名相同的文件

时间:2014-01-03 06:53:30

标签: java file file-io

我想将文件140103122005+0530_Penguins.jpg重命名为Penguins.jpg来自同一目录。

我已经尝试了renameTo()但它无法正常工作,它需要目标文件,我没有目标文件。

任何人都可以告诉我如何使用Java从同一目录重命名相同的文件。

4 个答案:

答案 0 :(得分:6)

请仔细阅读renameTo java doc。它需要抽象目标文件对象(这并不一定意味着该文件必须存在于您的系统上)。它只是关于系统上目标文件的renameTo()方法的指示器。 File documentation明确指出文件对象是文件或目录的抽象表示(实际文件可能存在也可能不存在)。

以下是供参考的java代码段:

// This file to be renamed (must exist on your system)
File source = new File("c:/140103122005+0530_Penguins.jpg");

if(source.exists()) {
    // Abstract file path (does not exist)
    File destination = new File ("c:/Penguins.jpg");

    // rename the source file
    source.renameTo(destination);
}

答案 1 :(得分:1)

这是一个例子

import java.io.*;
public class file {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File f=new File("140103122005+0530_Penguins.jpg");
        f.renameTo(new File("Penguins.jpg"));

    }

}

remaneTo会返回boolean,所以如果您想检查其他文件是否已重命名,请执行System.out.println(f.renameTo(new File("Penguins.jpg"));如果您成功,则重命名文件

答案 2 :(得分:0)

也许你做错了什么。它应该是

boolean success = new File("1").renameTo(new File("2"));

请注意,根据javadoc,它可能无法将文件从一个文件系统移动到另一个文件系统,如果具有目标抽象路径名的文件已存在,则可能无法成功。 renameTo取决于平台。

从Java 7开始,建议使用与平台无关的java.nio.file.Files.move方法

答案 3 :(得分:0)

还要检查 File.renameTo 方法的返回参数是否成功重命名。文件重命名操作取决于平台,可能不会一直成功。