Windows の次世代ファイル システム: ReFSより
Q) NTFS のセマンティクスおよび機能のうち、ReFS ではサポートされないものはどれですか?
ReFS でサポートしないことになった NTFS の機能は、名前付きストリーム、オブジェクト ID、短い名前、圧縮、ファイル レベルの暗号化 (EFS)、ユーザー データ トランザクション、スパース、ハード リンク、拡張属性、およびクォータです。
名前付きストリームは誰も使わないうちに消えるし、HDDが大容量化しているので圧縮もあまりインパクトは無いでしょうね。問題は短い名前。短い名前なんて使ってないと思っていても、思いがけない形で引っかかっているケースがあるので、これがサポートされなくなった瞬間に予測不能の問題が若干出てくる可能性があります。
ReFSでは動作しないと予想されるコード例 §
using System;
using System.Linq;
using System.IO;
class Program
{
static void Main(string[] args)
{
File.WriteAllText("test.txtx", "not 8.3 file");
Console.WriteLine(File.ReadAllText(Directory.EnumerateFiles(".","*.txt").First()));
}
}
(実行ファイル以外にファイルがないディレクトリで実行すると仮定)
本人は"test.txtx"ではなく、"test.txt"と書いたつもりで見落としていただけなら、発見が遅れます。
誰もこんなコードは書かないと思いますが、結果的にこれと同じ機能が動作してしまうケースはあり得ます。
感想 §
"dir *.htm"すると、".html"のファイルまで出てくるという悲鳴がやっと止まるのは嬉しいような。互換度低下のような微妙な感想。もっともReFS使わない場合はWindows 8でも従来通りかも知れません。ちなみに、最初にNTFSがサポートされたWindows NT 3.1には「8+3の短いファイル名」という機能はもともと無かったのだね。メモリ食いで遅かったけれど、あの当時はまだNTの世界はきれいだったなあ。きれなNT世界がぐちゃぐちゃになっていくのは、Windows 95という後発OSとの互換を取り始めてから。