Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(javaでfindコマンド)
閲覧数:1224
掲示板(javaでfindコマンド)
名前
ro
題名 javaでfindコマンド
質問内容

質問を評価する
(0ポイント)
unixのfindコマンドと同等の動作をするコードが分からないです。
実行の際に引数としてディレクトリを入力して実行すると、そのディ
レクトリ以下のファイルが全て一覧表されるというものです。
下記のコードからどうしても先に進めないです。
どうかご教授いただきますようお願い致します。

分からない所は
・7行目の配列の確保にどのような引数を渡せばいいのか。
・繰り返し処理の中でディレクトリかどうかの条件文でそのディレク
トリ以下のファイル一覧を取得したいが、下位層へすすまない。
・16行目のcに配列のどこまでチェックしたかを示す引数を渡したい
が、9行目で何を渡せばいいのかわからない。
・11行目の条件の4もとりあえず確認のために入れているが、何を渡
せばいいのか分からない。




  1 import java.io.File;
  2 import java.util.Arrays;
  3 
  4 public class Find {
  5         public static void main(String[] args) {
  6                 File findFile = new File(args[0]);
  7                 File names[] = new File[15] ;
  8                 names[0] = findFile;
  9                 int c = 0;
 10 
 11                 for (int i = 0; i < 4; i++) {
 12                         names[i] = findFile;
 13                         if (names[i].isDirectory()) {
 14                                 File subfiles[] = names[i].listFiles();
 15                                 names[i] = subfiles[i];
 16                                 System.arraycopy(names, i, names, (i + 
c), subfiles.length);
 17                         }
 18                 }
 19                 for (int k = 0; k < names.length; k++) {
 20                         System.out.println(names[k]);
 21                 }
 22         }
 23 }
質問日時 2013-02-19 22:54:30
名前
匿名
回答内容

回答を評価する
(30ポイント)
7行目その他から、基本が分かってないように見えるな。
ちゃんと理解しないで難しいことをやると、絶対訳が分から
なくなって質問することになるよ。

配列は最初から数が分かってる場合にだけ使う。
数が分からないならListを使う。
しかし、この場合は結果を逐一出力またはStringBuilderに貯め
れば、どちらも必要ない。

File.list()ならファイル名だけが返る。今回はそれで十分だろ
う。

下層ディレクトリを見たいなら再帰すればいいが…それ以前
だなあ。
回答日時 2013-02-20 18:17:17
名前
匿名
回答内容

回答を評価する
(0ポイント)
http://docs.oracle.com/javase/tutorial/essential/io/
find.html

ここみて勉強するといいよ。

コピペでだしてもいいが(w
回答日時 2013-03-07 14:00:05

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道