XML工房

〔作品1〕PCのフォルダツリーを表示する

~序章~ ツールの概要

2005年7月号掲載記事

こんにちは。インフォテリアの木村です。
今回新たにXMLを素材にし、実際に動かすことができて少しは役に立つ(立ちそうな?)ツールを作成、紹介していくコラムをお届けしたい、ということで新しい連載コラムを担当します。プログラムあるいはXSLTスタイルシートを毎回少しずつ組み立てていくことによって、XMLを扱う際の簡単なポイントなどにも触れてみたいと思います。

XMLはさまざまなデータを格納できる汎用データ形式ですので、XMLとして扱いたいデータはいくらでもあります。名刺データ、スケジュール管理、ミュージックリスト、ブックマークリスト、などなど。そんな中でこの連載では、データそのものを手軽に用意でき、容量の計算やソートなどを行うことのできる、PCのフォルダツリーを扱ってみることにします。

たとえば現在私が使用しているPCの「My Documents」フォルダは次のような構成になっています。
(一部ショートカットを実ファイルに置き換えています。隠しファイルも含めています。)

─────────────────────────────
My Documents
└ My Music
│ └ Sample Music
│ │ └ Beethoven's Symphony No. 9 (Scherzo).wma
│ │ └ New Stories (Highway Blues).wma
│ └ Desktop.ini
└My Pictures
│ └ Sample Pictures
│ │ └ Blue hills.jpg
│ │ └ Sunset.jpg
│ │ └ Water lilies.jpg
│ │ └ Winter.jpg
│ └ Desktop.ini
└My Webs
│ └ _private
│ └ _vti_cnf
│ └ _vti_pvt
│ │ └ botinfs.cnf
│ │ └ bots.cnf
│ │ └ service.cnf
│ │ └ service.lck
│ │ └ services.cnf
│ └ images
└ Default.rdp
└ desktop.ini
─────────────────────────────

このときWindowsエクスプローラにはフォルダの容量が表示されませんので、各フォルダの容量を確認するには、一つひとつのフォルダのプロパティを調べなくてはなりません。そこでこのフォルダツリーをXMLデータ化し、そしてXSLTを使用して容量の計算やソートなどを行うことにします。最終的には前述のフォルダ構成を次のように表示します。最後にソートなども行います。

─────────────────────────────
My_Documents(1,666,367)
└ My_Music(1,374,494)
| └ Sample_Music(1,374,386)
└ My_Pictures(289,153)
| └ Sample_Pictures(289,046)
└ My_Webs(1,544)
| └ images(0)
| └ _private(0)
| └ _vti_cnf(0)
| └ _vti_pvt(1,544)
─────────────────────────────

もちろんネット上を探せばこのようなフリーツールはすでにいくつかあると思いますが、XMLを用いた応用例の一つとして、もしも皆さん自身がこのツールを自分で作成するならどうするか、などの想像を膨らませながら見ていただけると楽しめるのではないでしょうか。

さて皆さんなら、これをどんなXMLにしてどのように処理しますか?
方法はさまざまですが、このコラムではJavaプラットフォームでDOMプログラミングとXSLTを使用して処理することにします。

では続きを次回に。

「XML工房」のIndexへ戻る

ページトップへ▲

HOMEへ戻る