竹形誠司 ブログ
ご質問    »トピック一覧
掲示板へのスパムが多いため、「ご質問」のコーナーはユーザー登録制とさせていただきました。お手数ですが、上の「新規ユーザーの登録」メニューより登録をお願いします。
帳票Web
アプリケーション

受注開発始めました
詳しくは こちら
竹形 誠司 著/ラトルズ刊
JSP帳票アプリケーション実践開発入門
JSP帳票アプリケーション
実践開発入門

JSP業務アプリケーション短期開発入門
JSP業務アプリケーション
短期開発入門

Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門

Java+MySQL+Tomcatで作る掲示板とブログ
Java+MySQL+Tomcatで作る
掲示板とブログ
附属ディスクの使い方(笑)
by KILROY[KILROY]
  JaMyTo シリーズは Step by Step で学ぶように書いてあるので、附属ディスクに収録されているソースコードもあっちこっちに同じ名前のものがあったりして、「最初から完成形を構築する」とかいったことをしようと思うとけっこう面倒です。
 そんな訳で、ちょっとしたツールを。
/**
* 指定されたディレクトリの下にあるすべてのディレクトリとファイルを
* 木の形で標準出力に表示する。
* リファクタリングが必要
* 2006/02/25
*/

import java.io.File;
import java.util.HashMap;

/**
*
* @author KILROY
*
*/
public class DirTree {
    static HashMap <String, Long> gFileList;
    public static void main( String argv[] ){
        try {
            if ( argv.length == 0 ) {
                showTree(new File("."));  // 引数なしの場合、カレントディレクトリから。
            } else {
                showTree(new File(argv[0]));  // 引数ありの場合、そのディレクトリから。
            }
        } catch( Exception e ) {  // エラーが発生
            System.err.println("Error....");
            System.exit(-1);
        }
    }

    private static void showTree( File rootdir) throws Exception {
        System.out.println( rootdir.getName());
        String str = new String();
        showTree( rootdir, str );
    }

    // 木を描く
    private static void showTree( File dir, String str ) throws Exception {
        File flist[] = dir.listFiles();
        if ( flist.length > 0 ) {
            for (int idx = 0; idx < ( flist.length - 1 ); idx += 1) {
                if ( flist[idx].isDirectory() )  {
                    System.out.println(str + "├ " + flist[idx].getName() + File.separator);
                    showTree(flist[idx], str + "│ ");
                } else {
                    System.out.println(str + "├ " + flist[idx].getName());
                }
            }
            /* 最後の一個は処理を分ける。 */
            if (flist[flist.length - 1].isDirectory())  {
                System.out.println( str + "└ "+ flist[flist.length - 1].getName() + File.separator );
                showTree(flist[flist.length - 1], str + "  ");
            } else {
                System.out.println(str + "└ "+ flist[flist.length - 1].getName());
            }
        }
    }
}
 このツールを使って、現在構築中の「 JaMyTo シリーズ附属のサンプルアプリケーション総まくり」プロジェクトのソースコード領域を出力する( java DirTree で起動)と、以下のような感じです。
src
├ bbs\
│ ├ BbsArticleList.java
│ ├ BbsDbConnection.java
│ ├ BbsSettings.java
│ ├ BbsUser.java
│ ├ BbsUserEx.java
│ ├ BbsUserList.java
│ ├ beans\
│ │ └ BbsArticleBean.java
│ ├ Log.java
│ ├ SessionTimeoutException.java
│ ├ SimpleEmail.java
│ └ TextConv.java
├ bbss\
│ ├ BbssDbConnection.java
│ └ beans\
│   ├ TopicBean.java
│   ├ TopicListBean.java
│   ├ UserBean.java
│   └ UserListBean.java
├ jamyto\
│ ├ Sequence.java
│ └ TextTable.java
├ jinx\
│ └ CodeSet.java
├ PrintInvoice.java
├ shop\
│ ├ Basket.java
│ ├ beans\
│ │ ├ BasketBeans.java
│ │ ├ Item.java
│ │ └ ItemBean.java
│ ├ Customer.java
│ ├ Order.java
│ ├ OrderListCondition.java
│ ├ Product.java
│ └ ShopDbConnection.java
├ spinstar\
│ ├ EncodingFilter.java
│ ├ JNDI.java
│ ├ RdbConnection.java
│ ├ RelationalDataBaseManager.java
│ ├ Smtp.java
│ └ UnicodeFilter.java
└ weblog\
  ├ BlogArticle.java
  ├ BlogArticleList.java
  ├ BlogComment.java
  ├ BlogCommentList.java
  ├ BlogSettings.java
  ├ BlogUser.java
  └ WebLogDbConnection.java
  JSP から useBean で呼ぶクラスは beans パッケージの下に〜 Beans という名前で整理。 Web 依存の共通ロジック(主にユーティリティ・クラスとして実装されたもの) は spinstar パッケージに整理、 Web 非依存のものは jinx パッケージに整理。
投稿:KILROY[KILROY]/2007年 04月 07日 07時 09分 /更新:2007年 04月 07日 07時 09分