我正在编写代码我正在使用java nio api创建一个目录,我的代码段是
Path target = Paths.get(""+folder_path+xx[0]);
Set<PosixFilePermission> perms = null;
if(xx[2].toLowerCase().equals("read"))
perms =PosixFilePermissions.fromString("r--------");
if(xx[2].toLowerCase().equals("read/write"))
{
perms =PosixFilePermissions.fromString("rw-------");
}
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);
Files.createDirectory(target, attr);
但它正在抛出错误
java.nio.file.FileAlreadyExistsException: /home/ritesh/Desktop/userA
我知道的原因是因为一个目录已经有了同名但我想用我的代码目录生成的目录覆盖userA目录如何实现这个?
答案 0 :(得分:9)
而不是
Files.createDirectory(target, attr);
尝试使用
Files.createDirectories(target, attr);
在Files.createDirectories()
的文档中:
首先通过创建所有不存在的父目录来创建目录。与createDirectory方法不同,如果由于目录已存在而无法创建目录,则不会引发异常。