Dokan

user-mode file system for Windows    >>English version

Dokan Ruby バインディング

Copyright(c) Hiroki Asakawa http://dokan-dev.net

このソフトウェアについて

Windows 用の仮想ファイルシステム Dokan の Ruby バインディングです.Ruby 言語で Windows用のファイルシステムを記述することが可能です.実行には Dokan ライブラリが必要です.

ライセンスについて

MIT ライセンスに従います.license.txt をご覧ください.

動作環境

dokan_lib.so は VC6 でコンパイルされています.mswin32 Rubyと,One-Click Rubyで動作確認を行っています.

使い方

dokan_lib.so (このソフトウェアに含まれる)
を同一ディレクトリに配置して,Rubyスクリプトを実行します.実行には Administrator 権限が必要です.

    > ruby sampletest.rb

また

    > dokanctl.exe /u DriveLetter

によりアンマウントします.
Dokan ライブラリのドキュメントも必ず参照してください.

ファイルシステムの作成方法

API.txt に記述されているメソッドを class Hello に実装し,Dokan.mount(“d”, Hello.new) を実行することでマウントします.各メソッドは成功したら true 失敗したら false を返して下さい.

    open(path, fileinfo)

最初の引数は開こうとしているファイルのパス名,次の引数は補助的な情報が渡されます.FileInfo#directory?,FileInfo#process_id,FileInfo#context,FileInfo#context= が定義されています.FileInfo#context に代入すると,同一ファイルハンドルによる操作の場合に,FileInfo#context に代入した値が渡されてきます.

WindowsAPI で使用す定数 FILE_ATTRIBUTE_* が定義されています(Dokan::NORMAL,Dokan::DIRECTORY等).stat でファイル属性を返す場合に使用します.

Dokan.debug = true をセットすることでデバッグ情報を出力できます.

sample 以下にサンプルスクリプトがあります.

lib\dokanfs.rbはFuseFS(Linux用のユーザモードファイルシステムであるFUSEのRubyバインディング)互換ライブラリです.requireすることで,FuseFSと同一インタフェースでファイルシステムが作成出来ます.dokanfs.rb については,sample\hello.rb を参照してください.