【发布时间】:2014-01-20 19:17:58
【问题描述】:
我想将同一目录中的文件140103122005+0530_Penguins.jpg 重命名为Penguins.jpg。
我试过renameTo() 但它不起作用,它需要目标文件,我没有目标文件。
任何人都可以告诉我如何使用 Java 重命名同一目录中的同一文件。
【问题讨论】:
-
您的目标文件将与您当前的文件位置相同
我想将同一目录中的文件140103122005+0530_Penguins.jpg 重命名为Penguins.jpg。
我试过renameTo() 但它不起作用,它需要目标文件,我没有目标文件。
任何人都可以告诉我如何使用 Java 重命名同一目录中的同一文件。
【问题讨论】:
请仔细阅读renameTo java 文档。它需要 abstract destination File 对象(这并不一定意味着该文件必须存在于您的系统上)。它只是关于系统上目标文件的 renameTo() 方法的一个指示符。 File documentation 明确表示文件对象是文件或目录的抽象表示(实际文件可能存在也可能不存在)。
这里有一个java代码sn-p供参考:
// 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);
}
【讨论】:
也许你做错了什么。应该是
boolean success = new File("1").renameTo(new File("2"));
请注意,根据 javadoc,它可能无法将文件从一个文件系统移动到另一个文件系统,并且如果具有目标抽象路径名的文件已经存在,它可能不会成功。 renameTo 是平台相关的。
从 Java 7 开始,建议使用独立于平台的 java.nio.file.Files.move 方法
【讨论】:
还可以通过File.renameTo方法的返回参数检查重命名是否成功。文件重命名操作依赖于平台,可能不会一直成功。
【讨论】:
这是一个例子
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")); 如果你得到 true 然后文件重命名
【讨论】: