gpt4 book ai didi

java - 为什么文件重命名在 Java 中会失败

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:36:43 24 4
gpt4 key购买 nike

我有以下 java 代码片段:

File directoryToMoveTo = new File(file.getParent()+"_TEMP");
boolean success = file.renameTo(new File(directoryToMoveTo,file.getName()));
if (!success){
logger.warn("Failed to move [%s] to temp Directory.");
}

文件作为参数传入该方法,并且是这样获得的文件数组之一:

File[] files = directory.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
logger.debug(String.format("Testing file [%s]",name));
boolean passed = name.endsWith(getFileDescription().getFilePattern());
logger.debug(String.format("Passed [%s]",passed));
return passed;
}
});

为什么第一个片段中的 success 为 false?

我在另一个文件上单独尝试了这段代码,它似乎可以工作。

最佳答案

明显的情况:

  • 目标文件已经存在
  • 目标目录不存在
  • 目标目录在不同的文件系统上
  • 目标目录是只读的(或者至少,当前用户没有写权限)

预计那些至少可能会失败(JavaDoc 明确表示很多这种行为是依赖于操作系统的)——你试过了吗?

关于java - 为什么文件重命名在 Java 中会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2372374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com