• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:Fileの再帰的検索
#navi(../)
*Fileの再帰的検索 [#la10adfb]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2003-11-11~
更新日:&lastmod;

#contents

**概要 [#k8a03c82]
ファイルを再帰的に検索します。

#screenshot

**サンプルコード [#n78bba98]
#code{{
 public void recursiveSearch(File dir, final Vector list)
     throws InterruptedException {
   String[] contents = dir.list();
   for(int i=0;i<contents.length;i++) {
     if(Thread.interrupted()) {
       throw new InterruptedException();
     }
     File sdir = new File(dir, contents[i]);
     if(sdir.isDirectory()) {
       recursiveSearch(sdir, list);
     }else if(isGraphicsFile(sdir.getName())) {
       list.add(sdir);
     }
   }
 }

}}
//-&jnlp;
-&jar;
-&zip;

**解説 [#l9b71aa9]
上記のサンプルでは、選択したフォルダ以下のファイルを再帰的にすべて検索して表示するようになっています。

JProgressBarを使った進捗状況の表示とキャンセルには、SwingWorkerを利用しています。
JProgressBarを使った進捗状況の表示とキャンセルには、SwingWorkerを利用しています。以下のリンクなどを参考にしてみてください。

**参考リンク [#oc687cdf]
-[[Java入門 ファイル>http://msugai.fc2web.com/java/IO/fileObj.html]]
-[[Using a Swing Worker Thread>http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html]]
-[[How to Use Progress Bars>http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html]]
-[[SwingWorker.java>http://java.sun.com/products/jfc/tsc/articles/threads/src/SwingWorker.java]]
-[[Customize SwingWorker to improve Swing GUIs>http://www.javaworld.com/javaworld/jw-06-2003/jw-0606-swingworker-p3.html]]

**コメント [#v7736a30]
- 実際に動作するサンプルを追加してみました。 -- [[terai]] &new{2006-04-28 (金) 21:50:55};

#comment