2013-08-01 157 views
1

我正处于一个Java项目的中间,其中一部分正在调用Windows cmd来创建一个目录。我的代码目前看起来像这样:当你使用cmd时,cmd总会打开一个新窗口

Runtime rt = Runtime.getRuntime(); 
    String command; 
    command = "cmd.exe /c start mkdir \"C:\\Users\\User1\\Documents\\Folder1\\"+folderName+"\" &&exit"; 
    rt.exec(command); 

这工作正常(创建文件夹),但它产生了一个额外的cmd实例。 (我原来是添加了“& &退出”的思想,将消除额外的窗口,但我现在已经意识到了不必要的代码。)

1)我可以防止CMD(始于在新目录中的这种额外的实例) ,或

2)我可以在不引起其他问题的情况下关闭这个额外的cmd窗口吗? (我听说杀死cmd可以在机器上破坏其他东西。)

+0

你不需要运行一个外部命令来创建一个目录。使用API​​。 – EJP

回答

1

你应该使用:

File file = new File("C:\\Users\\User1\\Documents\\Folder1\\"+folderName+"\""); 

    if(!file.exists()) 
    { 
     file.mkdir(); 
    } 

代替。但是,如果您想将命令调入cmd而不创建新命令,则不应该调用“cmd.exe/c start”。你可以检查一下,如果你从java外部运行同样的命令,它也会启动一个新的cmd。试试这个:

Runtime rt = Runtime.getRuntime(); 
String command; 
command = "mkdir \"C:\\Users\\User1\\Documents\\Folder1\\"+folderName+"\" &&exit"; 
rt.exec(command); 
1

你为什么不用File创建目录?

new File("C:\\my\\path\\myDir").mkdir(); 
+1

我们应该开始推荐使用NIO方式。 'Files.createDirectory(Path,FileAttributes)' –

相关问题