2

I would like to perform the following windows command under java :

rmdir /s C:\Main\Second\Third

Y

The problem is that there is 2 commands to run, one for the remove and one as confirmation (a simple "Y", as you can see).

I know it's feasable but I didn't manage to make it.

        String rmCommand = "cmd.exe /c rmdir /s /q C:\\Main\\Second\\Third";
        
        Runtime runt = Runtime.getRuntime();
        Process process = runt.exec(rmCommand);

So my question is : How to run these 2 above commands in prompt thanks to JAVA code.

EDIT : I modified a bit the initial code according to some proposals but it still doesn't work ... I don't know what to do.

4

3 に答える 3

3

rmdirプログラムではありません - コマンドシェルの一部です。したがって、次のようなものを実行する必要があります。

"cmd.exe /c rmdir /s C:\\Main\\Second\\Third"

(製品版の場合は、もちろん、正しい cmd.exe を取得したことを確認する必要があります。)

于 2012-08-23T06:21:42.433 に答える
1

良い習慣かどうかについての質問はさておき、質問に対する答えは次のとおりです。単一の文字を含むファイルを作成しますY。としましょうy.txt

次に、コマンドは次のようになります。

cmd.exe /c rmdir /s C:\\Main\\Second\\Third < y.txt
于 2012-12-18T13:56:25.623 に答える
1

確認を求められないようにするには、rmdir コマンドに /Q を追加してください: http://www.computerhope.com/rmdirhlp.htm

しかし、それを rmdir で行うのは非常に悪い習慣です。再帰的な削除を自分で行いたくない場合は、Apache Commons FileUtilsを使用してください。そして、それは rmdir が十分かどうかの問題ではなく、あなたが持っているツールを正しい方法で使用するかどうかの問題です。私があなたを正しく理解していれば、あなたの問題は、Java は開いているファイルを削除できないが、rmdir は削除できるということです。ファイルを開いたままにしておくコードの問題のようですね。

于 2012-08-23T06:37:06.210 に答える