【TagFS 0.1.0】Windows上でタグファイルシステムを実現してみる
最初に
α版です。何が起きても泣かない。
なにこれ
一言で言えば、Windowsのファイルシステム上でタグ付けを擬似的に行います。
具体的には、例えば以下の画像があるとします。
photo by Simon Pais-Thomas
これをローカルディスクに保存する際、どこに保存するべきか、といえば、"三次元"とか"雑誌"とか"flickr"といったフォルダが思い当たります。本当はそのいずれのフォルダにも保存したいですが、Windowsのファイルシステム上でそんなことをやっていたらディスクがいくらあっても足りません。ということで、とりあえずどこかにこの画像を保存しておき、TagFSに対してこの画像が"三次元"、"雑誌"、"flickr"にタグ付けしてやります。
TagFSはディスクとしてOSからは扱われるので、TagFSがマウントしているドライブ(たとえばTドライブ)を開くと、"三次元"、"雑誌"、"flickr"というフォルダが出てきます。
とりあえず"三次元"を開くと、さっきのファイルがあります。"雑誌"を開いても同じファイルがありますし、"flickr"でも同様です。仮想的に見せているだけで、実態としてのファイルは1つしかありません。なので、ディスク容量はファイル1個分だけです。
インストール方法
タグ登録方法
AtPictureのタグデータのインポート
個別登録
- 同梱されているinsert.exeでタグ付けが出来ます。
- 構文は次の通り:insert.exe FILEPATH TAGNAME
起動方法
- tagfs.exeを起動します。引数はドライブレターです。
- Tドライブで起動したいなら:tagfs.exe t
- Qドライブで起動したいなら:tagfs.exe q
- みたいな感じ。
- コンソールを落とさないでください(最小化は可)。落とすとTagFSも落ちます。
終了方法
- TagFSを起動させたコンソール上でCtrl+Cを押してください。
- 使用中のファイルがあるとなかなか終了してくれません。
- 下手すると1分とかかかるケースがありますが、下手に無理矢理落とすとタグDBが壊れる危険があります。我慢強く待つことをお勧めします。
注意
- ファイル名の先頭に数字が勝手にくっついてますが、これは取り外せません。理由は別のフォルダに存在する同名ファイルがあった場合に区別できなくなるからです。
- ファイルへの書き込みはできません。実装が間に合ってないだけなのでやれば実装できます。
- パフォーマンスに問題があるため、巨大なファイルを登録するのはお薦めしません。本当は動画ファイル等の管理にも使えるようなー、と思ってやってみましたが、読み込みにやたら時間がかかるので実用性は低いです(このへんはRubyのファイルアクセス速度に起因している気がしています)。
- ドライブ直下に対する全ファイル検索はやめた方が無難です。見かけ上莫大なファイル数を持っているため、ファイル数にもよりますが、たぶんいつまでたっても検索が終わりません。
- 例えば「二次元」というタグを持つファイルが10万個あった場合、TagFS上で「二次元」フォルダを開くと10万個のファイルがリストアップされることになります。TagFSとしては問題ないのですが、ファイラが耐えられません。エクスプローラはもちろん、およそ大抵のファイラがハングアップします(通常、一つのフォルダに数万ファイルが含まれていることはありえない)。くわえてファイラの挙動として、リストアップされた10万個のファイルに対してそのファイルサイズ、属性等を一斉に取得しようとします。さらにエクスプローラの挙動として、ツリー構造把握のために全タグに対してファイル数がいくつあるのかを検査しようとするため、数万個のファイルが登録されているタグがあると死にます。