如何在Linux下用Java编写空格文件夹?

我有一个严重的问题

我想运行一个使用运行时接口的Java类的Linux命令,有一个命令来创build一个名为例如“我的文件夹”的文件夹,

对于创buildUnix命令很容易做到:mkdir My \ Folder或者mkdir“我的文件夹”

但是如何在Java中翻译这个,我尝试了两个命令:Runtime.exec(“mkdir My \ Folder”)Runtime.exec(“mkdir \”My Folder \“”)

这里是一个例子:

import java.io.IOException; public class CreerDossier { public static void main(String[] args) throws IOException { Runtime runtime = Runtime.getRuntime(); runtime.exec("mkdir My\\ Folder"); runtime.exec("mkdir \"My Folder\""); } } 

但是这还不行,

它为runtime.exec(“mkdir My \ Folder”)创build了两个文件夹My \和Folder for runtime.exec(“mkdir \”My Folder \“”),它还创build了两个文件夹“My and Folder”

有解决scheme吗?

谢谢 !

 runtime.exec(new String[] { "mkdir", "My Folder" }); 

为此,使用File.mkdir()要容易File.mkdir()

 File dir = new File("My Folder"); dir.mkdir(); 

其他答案已经解释了如何在目录名称中放置空格。 我想尝试说服你不要这样做。

按照惯例,Linux上的路径名中没有空格。 当然,文件系统允许这样做,等等。 但是这对Linux用户来说生活很尴尬:

  • 从命令提示符输入带空格的路径名时,您必须始终记住引用它们或转义空格。

  • 在编写将脚本名存储在变量中的shell脚本时,如果路径名中有/可能有空格,则必须小心。 如果你不这样做,剧本可能会打破。

结合这些,你会发现你的美丽的目录名称与空格在其中实际上是一个令人讨厌的…或更糟糕的。

我的建议是重新设计你的系统以避免这种情况。 或者不要让你的系统的用户把名字放在首位,或者(如果你必须支持这个,因为这是一个要求),那么:

  • 使用类似于URL样式的百分比编码来对文件名进行编码,以便空间字符不会在文件系统的实际路径名中表示为空格,或者
  • 将用户提供的名称存储在数据库中。