如何在Linux下创建一个用Java编写的空格的文件夹?

时间:2013-02-16 23:07:25

标签: java linux space

我有一个严重的问题

我想使用带有运行时接口的Java类运行Linux命令,有一个命令可以创建一个名为“My Folder”的文件夹,带有空格

对于create,Unix命令很容易做到: mkdir我的\文件夹 要么 mkdir“我的文件夹”

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

以下是一个例子:

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”),它会创建两个文件夹My \和Folder 对于runtime.exec(“mkdir \”我的文件夹\“”),它还会创建两个文件夹“My and Folder”

有解决方案吗?

谢谢!

3 个答案:

答案 0 :(得分:4)

使用File.mkdir()来实现

要容易得多
File dir = new File("My Folder");
dir.mkdir();

答案 1 :(得分:2)

其他答案解释了如何在目录名称中添加空格。我想试着说服你不要这样做。

按照惯例,Linux上的路径名中没有空格。当然文件系统允许这样,等等。但它让Linux用户的生活变得尴尬:

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

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

结合这些,您会发现你的漂亮目录名称中包含空格实际上是令人讨厌的......或者更糟。

我的建议是重新设计你的系统以避免这种情况。或者不允许系统的用户首先在名称中放置空格,或者(如果你必须支持这个,因为它是一个要求),那么:

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

答案 2 :(得分:1)

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