如何在java程序中使用mkdir和rmdir命令

我想在运行java程序时使用mkdirrmdir等系统命令。

我怎样才能做到这一点?

为什么要使用命令行? 仅供参考,有内置的平台无关的File类。

http://www.exampledepot.com/egs/java.io/deletefile.html
http://www.roseindia.net/java/beginners/java-create-directory.shtml

制作目录:

 new File("dir path").mkdir(); 

删除目录:

 new File("dir path").delete(); 

这里的’新文件’有点用词不当,它实际上并没有创建目录或文件。 它正在创建一个Java资源挂钩,您可以使用它来查询或操作现有的文件系统资源,或者根据您的请求创建一个新的资源。 否则,使用Runtime.getRuntime().exec("command line here")来使用命令行操作(不建议!!)。

编辑:整理问题海报所遇到的问题:

 String envp[] = new String[1]; envp[0] = "PATH=" + System.getProperty("java.library.path"); Runtime.getRuntime().exec("command line here", envp); 

注意将envp插入到exec(..)方法调用中,该调用基本上是来自环境的PATH变量。

如前所述,您不应该为简单的文件管理执行此操作。 但要提到它:Java API有一个名为Runtime的类,允许系统调用…例如:

 Runtime.getRuntime().exec("some_command"); 

最好的不是,而是找到执行它的纯Java API函数。 它更清晰,更易于理解,更不容易出错。 它也是执行Java编写的唯一方法。 一旦调用shell命令,就会绑定到该shell。

在您的情况下,您正在寻找java.io.File类,特别是mkdir和delete方法。

为了参考人们绊倒这个问题并想知道为什么Runtime.getRuntime().exec("mkdir foo")即使按照Chris Dennett的答案整合环境也不起作用,最可能的原因是你没有您系统上名为“mkdir”的程序。 虽然大多数类Unix系统都有这个名称的程序,但它们并不是绝对必要的,而Windows也没有,因为在这两种情况下shell都会自己解释这个命令,而不是将它传递给外部计划。

要使它工作,请尝试为NT系列Windows(或Windows 95系列的"command /c mkdir foo" )或exec ("sh -c \"mkdir foo\"")用于Unix。

没有独立于平台的方法来实现这一点的事实是更喜欢Java API来执行任务的另一个原因。

Java API中有一些方法,以及commons-io中包含得很好的实现,可以进一步简化流程。

http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html

嗨同意不是平台独立的事实,只是为了测试我必须使用它的应用程序。 我的案例中的解决方案是Runtime.getRuntime()。exec(“my_command_name”); 为了不工作,我必须提供批/ sh /可执行文件所在的完整路径,即:

调用Runtime.getRuntime()EXEC( “/ d /温度/ bin中/ mybatfile”);

makedirectory方法 –

 File dir = new File("path name"); boolean isCreated = dir.mkdir(); 

删除方法 –

 public boolean delete() true if and only if the file or directory is successfully deleted; false otherwise 

有关更多信息,请参阅以

https://docs.oracle.com/javase/8/docs/api/java/io/File.html

http://www.flowerbrackets.com/create-directory-java-program/