簡體   English   中英

使用java.nio.file.Files.createTempDirectory時出現NoSuchFileException

[英]NoSuchFileException when using java.nio.file.Files.createTempDirectory

嘗試使用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。 資源目錄確實存在。

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”

有誰知道為什么這會導致該異常的發生? 無論多小建議,我都感激不盡。

您將"/resources/"指定為要在其中創建臨時目錄的目錄的路徑。
首先,它不是Windows的有效格式。 當我測試時,它將在安裝Windows的驅動器的根目錄下創建temp目錄。

除了所需的路徑外,還有一個相對路徑: "resources"到JVM的工作文件夾,即C:\\Users\\Admin\\Desktop\\eclipse-oxygen\\workspace\\FileStuff 請注意,結尾的/不再需要。
這樣就可以解決您的問題:

private static final String ROOT = "resources";     

最后,您應該避免將文件夾用作C:\\Users來包含Java源代碼。 您可能也有正確的問題。
它們應位於非特定的Windows目錄中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM