我最近正在制作一些 Java 软件来查找文件夹中的一些文件/目录,如果它们的名称包含某些文本,它们将被重命名为其他名称。我使用 Files.walkFileTree
遍历目录,如果找到一个匹配的文件/目录,它将使用 File.renameTo
方法重命名。
但是这里我遇到了一个问题,如果一个子目录被重命名了,这个子目录下的所有重命名操作都会失败。
我认为这是因为该子目录已被标记为打开,因此无法对其文件/文件夹进行任何更改。有解决办法吗?
最佳答案
如果首先确定所有名称,然后在重命名目录包含的文件之前重命名目录,就会发生这种情况。
一些解决方案是首先重命名文件深度(仅在重命名文件后重命名目录)或仅构建文件列表。
关于java - 重命名目录和一些包含文件/子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475866/