我尝试使用我在此处找到的代码重命名文件:
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。但是,堆栈跟踪不可读。
这可能是什么原因?
答案 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()