やまろうのJavaなわけ
2003/01/22
Vol.1 ディレクトリ探索で再起再起!!
どうもー、やまろうでぃーす。
メールマガジン始めてみました。
僕は現在ある政府機関のWebアプリケーション開発に参加してます。
そこで日々学んだことなどをお送りしたいと思います。
このメルマガはメルマガ自体をそのままコンパイル出来ます。
(文章部分はコメントにしているので)
なので読んで、そのまま、なんたら.javaってファイルに保存して、
コンパイル・実行が出来るのです!で、内容は毎回一つの
サンプルプログラムについて、ああだ、こうだと言ってくものです。
その中で、J2SEからJ2EE、オープンソースのライブラリ等、
さまざまなものを使っていきます。
そして、オブジェクト指向プログラミングの要素も入れていきます。
なので、読んでいく内に自然とオブジェクト指向の考え方が分かるように
なると思います。そんなわけで、よろしくお願いしまーす。
で、今回はディレクトリ探索です。最近僕が気に入ってる処理
なのですが、ディレクトリ名を渡すとその配下にあるファイルを
全部走査するってやつです。「この下にあるファイルのコメントを
全部置き換えたいんだよなー」っとかの時にそれを一気に
プログラムにやらすことが出来るわけです!
それではソースを見て下さい。
package dir; import java.io.*; class DirSearch { /* 引数のディレクトリ配下のファイルを出力する */ public static void main(String[] args) { File file = new File(args[0]); searchDir(file); } private static void searchDir(File dir) { File[] files = dir.listFiles(); // (1) for (int i = 0; i < files.length; i++) { // (2) File file = files[i]; // (3) if (file.isDirectory()) { // (4) searchDir(file); // (5) } else { // (6) p(file.getName()); // (7) } // (8) } // (9) // (10) } private static void p(String s) { System.out.println(s); } }
(1)で引数で渡されたファイルオブジェクト(ディレクトリ)から
ファイル一覧を取得します。
(2)で一覧をループでまわして、1ファイルずつ処理します。
(4)でファイルがディレクトリか調査して、ディレクトリだった場合
(5)でsearchDirメソッドを再起的に呼び出す、
で、ディレクトリじゃない場合
(7)でファイル名を出力してます。ここでそのファイルを
開いて置き換えとか編集なんかのファイル処理をすると
とっても便利なプログラムの出来上がりってわけです。
では実行してみましょう!
このメルマガをDirSearch.javaという名前で保存して
DOSプロンプトで
javac -d . DirSearch.java
Windows 98系を使ってる方は
java dir.DirSearch "C:\\windows\\Favorites"
Windows NT系を使ってる方は
java dir.DirSearch "C:\Documents and Settings\Administrator\Favorites"
↑
Administratorでログインしてない方は自分のユーザーのFavoritesフォルダを
指定して下さい。まぁ、とにかく、なんらかのフォルダをフルパスで引数に
渡してくれれば動きます。
実行結果
Yahoo! JAPAN.url
JustNetTop.url
goo[グー].url
MSN.url
LYCOS Japan.url
Yahoo! Auctions オークション.url
ってなわけです。
お気に入りに登録したファイルが出力されるはずです。
いかがわしいサイトとか登録してあると人に見せられないですぜ!!
んじゃ!!