我正在尝试通过使用环境变量在特定文件夹中创建Path的类的实例。这是我的代码:
Path pathName = Paths.get(System.getenv("USER") + "/AGENDA");
System.out.println(chemin);
if(Files.exists(pathName)) {
System.out.println("Directory already exists!");
}
else
{
try {
Files.createDirectories(pathName);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Directory newly created!");
}
我运行时,控制台显示:
/feujio/AGENDA
java.nio.file.AccessDeniedException: /feujio
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
at java.nio.file.Files.createDirectory(Files.java:674)
at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
at java.nio.file.Files.createDirectories(Files.java:767)
at File.FilePaths.createPath(FilePaths.java:44)
at File.FilePaths.main(FilePaths.java:63)
Directory newly created!
当我不使用环境变量时,它可以工作。我无法解释这种行为。
答案 0 :(得分:0)
Files.createDirectory()
的Javadoc:
创建一个新目录。检查文件是否存在以及是否创建目录(如果目录不存在)是单个操作,对于可能影响目录的所有其他文件系统活动而言,这是原子操作。 应在需要首先创建所有不存在的父目录的地方使用
createDirectories
方法。[...]
如果发生I / O错误或父目录不存在,则抛出
IOException
NoSuchFileException
是IOException
。
这意味着my-username
不是当前目录中的现有目录,无论当前目录是什么。