【发布时间】:2018-08-13 01:40:29
【问题描述】:
我在尝试使用 java.nio.file.Files.createTempDirectory 创建临时目录时遇到问题。尝试创建目录时,我不断收到 NoSuchFileException。
这是我的代码:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class TempFileTesting {
private static final String ROOT = "/resources/";
public static void main(String[] args) throws Exception{
Path root = Paths.get(ROOT);
Path tempDir = Files.createTempDirectory(root, "dir");
Path tempFile = Files.createTempFile(tempDir, "t1", "t2");
}
}
当我这样做时,我在调用“createTempDirectory”的行上得到一个 NoSuchFileException,尽管 root 路径显然已成功创建。 resources 目录确实存在。
StackTrace 如下所示:
java.nio.file.NoSuchFileException: \resources\dir170003182480656885
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.createDirectory(WindowsFileSystemProvider.java:504)
at java.nio.file.Files.createDirectory(Files.java:674)
at java.nio.file.TempFileHelper.create(TempFileHelper.java:136)
at java.nio.file.TempFileHelper.createTempDirectory(TempFileHelper.java:173)
at java.nio.file.Files.createTempDirectory(Files.java:950)
at filetestingstuff.testers.TempFileTesting.main(TempFileTesting.java:15)
完整路径:“C:\Users\Admin\Desktop\eclipse-oxygen\workspace\FileStuff\resources”
有谁知道为什么这会导致这个异常发生?我很感激任何建议,无论多么小。
【问题讨论】:
-
您是否有权在该目录中写入?另外,恐怕您是在尝试在 `C:\resources` 中创建它,而不是在您期望的位置。
-
是的,更改 ROOT 字符串以包含从 C: 一直到的整个路径使其工作。我想我已经习惯了你使用 java.io 的方式,给它“/resources”会使其在 JAR 文件旁边创建一个文件
标签: java io temporary-files java.nio.file nosuchfileexception