繁体   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