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 で起動)と、以下のような感じです。* 指定されたディレクトリの下にあるすべてのディレクトリとファイルを
* 木の形で標準出力に表示する。
* リファクタリングが必要
* 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());
}
}
}
}
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 パッケージに整理。├ 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
投稿:KILROY[KILROY]/2007年 04月 07日 07時 09分
/更新:2007年 04月 07日 07時 09分