Java - renameTo方法不起作用

时间:2010-08-15 13:45:40

标签: java rename

我正在尝试在Java中使用 renameTo 方法,但它只返回false并且不移动文件。

我错过了一步吗?有没有办法找出它为什么不移动文件? 删除方法也没有做任何事情。

这是我的代码,展示了我如何使用它:

private void archiveOutputFile(File outputFile) {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddhhmmssS");
    String timeStamp = formatter.format(new Date());
    String subFolderName = "Archive" + timeStamp;
    File subFolder = new File(outputFile.getParent(),subFolderName);
    subFolder.mkdir();
    File newFile = new File(subFolder,outputFile.getName());
    //outputFile.deleteOnExit(); //Doesn't work, nor does .delete()
    boolean success = outputFile.renameTo(newFile);
}

以下是一些系统信息:

Java:1.6.0_21; Java HotSpot(TM)客户端VM 17.0-b17

系统:在x86上运行的Windows XP 5.1; CP1252; en_US(nb)

4 个答案:

答案 0 :(得分:5)

您无法重命名或删除Windows认为已打开的文件。

答案 1 :(得分:1)

在将文件移入子文件夹之前,您需要创建子文件夹(取消注释subFolder.mkdir();)

答案 2 :(得分:0)

我建议你检查是否存在。 public boolean exists()

More here

答案 3 :(得分:0)

如果我在该行中发表评论

,它是有效的
subFolder.mkdir();