我有一个严重的问题
我想使用带有运行时接口的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”
有解决方案吗?
谢谢!
答案 0 :(得分:4)
使用File.mkdir()
来实现
File dir = new File("My Folder");
dir.mkdir();
答案 1 :(得分:2)
其他答案解释了如何在目录名称中添加空格。我想试着说服你不要这样做。
按照惯例,Linux上的路径名中没有空格。当然文件系统允许这样,等等。但它让Linux用户的生活变得尴尬:
从命令提示符输入带空格的路径名时,您必须记住引用它们或转义空格。
在编写路径名存储在变量中的shell脚本时,如果路径名中有/可能有空格,则必须小心。如果不这样做,脚本可能会中断。
结合这些,您会发现你的漂亮目录名称中包含空格实际上是令人讨厌的......或者更糟。
我的建议是重新设计你的系统以避免这种情况。或者不允许系统的用户首先在名称中放置空格,或者(如果你必须支持这个,因为它是一个要求),那么:
答案 2 :(得分:1)
runtime.exec(new String[] { "mkdir", "My Folder" });