我对此进行了调查,在我看来,这里真正的难题在于Java的mkdirs并没有解释为什么目录无法创建。通常克服mkdirs竞态冲突的方法是检查EEXIST错误,如果那是错误,则继续操作不报错,因为我们知道其他进程赢得了竞赛。
当它输掉竞赛时,java.nio.path.createDirectories会抛出FileAlreadyExistsException。
我发现该仓库中的其他代码已经使用了java.nio,所以我猜将mkdirs转换为createDirectories应该是可能的。
希望这有助于您!