尝试使用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 路径显然已成功创建。 资源目录确实存在。
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"
有没有人知道为什么会导致此异常发生?无论多么小,我都很感激。
答案 0 :(得分:2)
您指定"/resources/"
作为创建临时目录的目录的路径
首先,它不是Windows的有效格式。在我测试时,它会在安装了Windows的驱动器的根目录下创建temp
目录。
除了你想要的是一个相对路径:"resources"
到JVM的工作文件夹C:\Users\Admin\Desktop\eclipse-oxygen\workspace\FileStuff
。
请注意,不再需要尾随/
这应该可以解决您的问题:
private static final String ROOT = "resources";
最后,您应该避免使用C:\Users
文件夹来包含Java源代码。你也可能有正确的问题
它们应位于非特定的Windows目录中。