
いつもお世話になってます。
Runtime.execを使用してディレクトリ情報を
txtファイルに出力しようとしているのですが、
現在のカレントディレクトリのものは出力できるのですが、
例えば、dドライブのtestフォルダに移動して
出力というのをどうやればいいのかわかりません。
ネットでいろいろ調べてみたものの、どうしてもわかりませんでした。
よろしくお願いします。
下記はカレントディレクトリの情報をそのままtxtファイルに出力したものです。
String command2 = "cmd /c dir > d:\\testest.txt";
Process process = Runtime.getRuntime().exec(command2);
No.3ベストアンサー
- 回答日時:
こんにちは。
try {
Process process = Runtime.getRuntime().exec("cmd /K cd /d d:");
PrintWriter pw = new PrintWriter(process.getOutputStream(), true);
pw.println("dir > testest.txt");
pw.println("exit");
//↑これは余分かも
pw.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
こんなふうにしたら、できました。
でも、素直に
Runtime.getRuntime().exec("cmd /C dir d:\\ > d:\\testest.txt");
こっちのほうが早いかも。
この回答への補足
PrintWriter pw = new PrintWriter(process.getOutputStream(), true);
pw.println("dir > testest.txt");
このように書くことができるのも勉強になりました。
意味をよく理解したいと思います。
ありがとうございます!できました!
どちらでもできたのですが、cdで移動して、外部コマンド実行ができるかどうか知りたかったので、本当に良かったです。
回答していただいた皆様ほんとうにありがとうございました。
No.4
- 回答日時:
#3です。
>例えば、dドライブのtestフォルダに移動して
すみません。よく読んでなかったです。
訂正です。
"cmd /K cd /d d:" → "cmd /K cd /d d:\\test"
"dir > testest.txt" → "dir > test.txt"
No.1
- 回答日時:
…ちょっと試してみましたが、無理そうですね…。
もしかしたらできるかもしれませんが…。
Runtime.getRuntime().exec(cmd1); //ディレクトリ移動
Runtime.getRuntime().exec(cmd2); //ディレクトリ情報出力
としても、
cmd1の実行が完了した時点でプロセスが終了してしまうので、cmd2を実行するときはまた新たなプロセスが生成されるからだと思います。
つまり、イメージ的には
・コマンドプロンプトを開いてcmd1を実行してコマンドプロンプトを閉じる
・また新たにコマンドプロンプトを開いてcmd2を実行してコマンドプロンプトを閉じる
という感じでしょうか。
もし、ファイルサイズ、更新日時、ディレクトリかファイルかという情報がいらなくて、単にフィル名を出力したいというのであれば、treeコマンドを使用してはいかがでしょうか?
もしくはちょっと面倒ですが、java.io.Fileクラスを使って情報を出力するとか。
カレントディレクトリを移動して実行というのを
行いと思っています。
java.io.Fileクラスを使って情報の出力も勉強したいと思います。回答ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
VbscriptにてTeraterm マクロを...
-
VB6.0で作ったプロジェクトが起...
-
OLE又はDDEを使うVISUAL BESIC...
-
コンポーネント`MSCOMM32.cox'...
-
VBAでMP3を鳴らしたい
-
c/c++ ビルドしたにもかかわら...
-
batからexeを実行し戻り値を受...
-
バッファとは何ですか
-
FTPでリモートのファイル一覧取得
-
どんなプログラムを書いても指...
-
fopenで別ディレクトリにファイ...
-
ACCESSのEXEを作るのは可能...
-
Wingdi.h Windows.h を開くには?
-
C言語初心者の質問失礼します。
-
「UNCパスはサポートされません...
-
ビットマップファイル生成(C言...
-
VisualStudioのプロジェクトリ...
-
ファイル名の先頭にアンダース...
-
VC++でexeファイルが作成できま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
c/c++ ビルドしたにもかかわら...
-
VBAで他のプログラムが起動して...
-
コマンドプロンプトで外のexeや...
-
VBAでEXEファイルを動かす方法...
-
コンポーネント`MSCOMM32.cox'...
-
JavaScriptでコマンドプ...
-
VC++から引数付きexeファイルの...
-
JAVA .jarファイルに再圧縮する...
-
jarの開き方を教えてください。
-
WScript.Echo と msgbox
-
実行ファイルと実行モジュール...
-
以下のように複数のファイルを...
-
ネットワーク越しのEXEファ...
-
JAVAでつくったプログラムはコ...
-
LINK : fatal error LNK1104に...
-
Winでコマンドプロンプトを出さ...
-
VBAでMP3を鳴らしたい
-
VB6で、C言語の(argv,argc)み...
おすすめ情報