ファイル操作にもトランザクションのすすめ

Windows Vista や コードネーム Windows Server Longhorn には、Transactional NTFS という機能が組み込まれています。そうです、ファイル操作にもトランザクションが使えるようになったんです。

使い方はいたって簡単。
コマンドプロンプトを開いて、 transaction /? と入力してみてください。すると、トランザクション制御のオプションが3つ表示されます。①スタート ②コミット ③ロールバックです。

例えば、あるフォルダに demo.txt というファイルがあったとすると、こんな感じです。

Transaction /start --- トランザクションをスタート
Copy demo.txt trandemo.txt --- 既存のdemo.txt テキストファイルを trandemo.txt という名にコピー
Ren trandemo.txt takazoe.txt --- trandemo.txt というファイル名を takazoe.txt という名前に変更(リネーム)
Transaction /rollback      --- トランザクションをロールバック

おわかりですか?
ファイルのコピーとリネームは成功します。しかし、トランザクションがロールバックされたために、ファイルは何事も無かったかのように demo.txt が残っているわけです。もし rollback ではなく commit と入力しておけば demo.txt と takazoe.txt の2つのファイルがちゃんと出来上がっているはずです。

コピーを1回行うだけであれば、わざわざトランザクションもないかもしれません。でも、複数のファイルを一括操作したい場合やコピーして名前を変更して・・・というような複数の処理を一気に行いたい場合などでは安心して作業ができるようになるのではないかと期待しています。

また、トランザクションをスタートした後、Reg.exe コマンドを使ってレジストリを操作することもできます。レジストリ操作は非常に神経を使うべきところですし、何かがあったらロールバックができるというのはありがたいのではないでしょうか。

そろそろ Vista の Beta が手元で動き始めたという方もいると思うので、是非 コマンドプロンプトを開いて Transaction をスタートさせてみてください。

Microsoft 高添