簡體   English   中英

在Linux下,不會通過Java代碼創建文件夾和文件,但適用於Windows

[英]Folder and file are not getting created by Java code under Linux, but it works for Windows

我對Java的io.file類有一些疑問

  1. Linux:文件分隔符'//'是否起作用,還是需要使用'\\'?
  2. 在紅帽中沒有驅動器分區名稱,因此如何給Linux等效於Windows路徑“ c:// TempFolder // Images //”?

您可以使用靜態字段File.separator或更好地使用nio Paths類,如下所示:

File f = Paths.get( "dir1", "dir2", "dir3" ).toFile();

為了讓某些東西可以引用絕對路徑,可以使用File.separator來啟動String參數,使用nio這個方法也可以得到它:

http://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystem.html#getSeparator%28%29

在Windows下:

File file = new File("C:\\TempFolder\\Images");
File file = new File("C:/TempFolder/Images"); // Because Windows soemtimes is nice.

在Linux下:

File file = new File("/TempFolder/Images");

之所以具有兩個反斜杠( \\\\ ),是因為在字符串中必須轉義一個反斜杠: \\t是制表符等。

如果這是您的問題,則Linux中沒有驅動器號。 對於臨時文件,您可以使用File.createTemporaryFile或createTemporaryDirectory。

其他計算機上的目錄也可以不帶驅動器號,但帶UNC路徑使用:

Windows

\\Server\Directory\Directory
"\\\\Server\\Directory\\Directory"

Linux

//Server/Directory/Directory

暫無
暫無

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

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