[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00682] お助けください。



------------------------- infoseek ML Sponsor --------------------------
■比べて下さい!  オリックスVIPローンカードは、こんなにもオトク
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     実質年率8.7%からご利用可能 ご利用限度額最高300万円  
 あなたの街の【銀行】【郵便局】【コンビニ】などでご利用頂けます。
     http://bishop.va-cats.com/cgi-bin/vts/va0/ID=001191802537 
------------------------------------------------------------------------


はじめまして、フジタと申します。

実はプログラマなのですが、今の会社に入って全くプログラムをやって
ないもので・・・
次のような、コード(もちろん、仕事のものではありませんが・・・)の
作成に困っております。
どなたか良いお知恵をお願いできますでしょうか・・・

1.パス情報をフルパス表示に変更。
    例) \root\bin\memo.exe
2.パスの最後にファイルサイズを表示。
    例) \root\bin\memo.exe (10000)
  ただし、ディレクトリの場合は、ディレクトリ以下の合計を表示する。
    例) \root\bin (10000)

ソース(多くて申し訳ありません)
*Entry.java(ディレクトリクラス・ファイルクラスの雛型)
public abstract class Entry {
    public abstract String getName();           // 名前を得る
    public Entry add(Entry entry) throws FileTreatmentException {  // エン
トリ追加
        throw new FileTreatmentException();
    }
    protected abstract void printList();
    public String toString() {                        // 文字列表現
        return getName();
    }
}

*File.java
public class File extends Entry {
    private String name;
    private int size;
    public File(String name, int size) {
        this.name = name;
        this.size = size;
    }
    public String getName() {
        return name;
    }
    protected void printList() {
        System.out.println(this);
    }
}

*Directory.java
import java.util.Iterator;
import java.util.Vector;

public class Directory extends Entry {
    private String name;                    // ディレクトリの名前
    private Vector directory = new Vector();  // ディレクトリエントリの集合
    public Directory(String name) {         // コンストラクタ
        this.name = name;
    }
    public String getName() {               // 名前を得る
        return name;
    }
    public Entry add(Entry entry) {         // エントリの追加
        directory.add(entry);
        return this;
    }
    protected void printList() {       // エントリの一覧
        System.out.println("\\"+this);
        Iterator it = directory.iterator();
        while (it.hasNext()) {
            Entry entry = (Entry)it.next();
            entry.printList();
        }
    }
}



------------------------------------------------------------------------
      ★秋風が心地よいこの季節 “住み替え”の季節です!
    http://house.www.infoseek.co.jp/House/top?sv=RF&svx=971122