无法重命名文件

时间:2017-03-08 08:57:14

标签: java file-rename

我有一个将某个文件写入目录的外部程序。文件大约每分钟编写一次。我写了一个程序来读取这些文件,处理它们并重命名文件后(实际上我在另一个目录中创建了一个文件副本,以便它不会被再次处理)。我通过

搜索目录中最旧的文件
Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_COMPARATOR)

我的重命名文件代码非常简单

File fileRenamed = new File(PATH_FILES + "processed\\" + oldestFile.getName() + ".processed");
try {
    if (oldestFile.renameTo(fileRenamed)) {
        LOGGER.info(" file  renamed");
    } else {
        LOGGER.info("  file NOT renamed!");
    }
} catch (SecurityException sex) {
    LOGGER.severe("security exception in file " + oldestFile.getName());
}

如您所见,我重命名该文件并将其复制到另一个目录(“已处理”)。通常一切正常,但有时重命名失败。我想是因为外部进程还没有完成编写它,同时我尝试重命名它。我的问题是:可能知道为什么重命名失败以及如何处理这种情况?如果文件已锁定,我该如何解锁?

0 个答案:

没有答案