NTFS代替データストリームはディレクトリにも作成できる

の続き。


[]C:\>mkdir foo[]
[]C:\>echo>foo:test.txt[]

[]C:\>type foo:test.txt[]
[]ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。[]

[]C:\>cd foo[]
[]C:\foo>type .\:test.txt[]
[]ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。[]

[]C:\foo>notepad .\:test.txt [][]… メモ帳で代替データストリームの内容(ECHO は <ON> です。)が表示される。[]

ということで、ディレクトリ foo は代替データストリームを持つことが可能ということのようです。なお、伊原さんお奨めstreamls や Sysinternals の streams では、この代替データストリームは検出できませんでした。

[]C:\foo>lfndel .\:test.txt[]
[]C:\bin\lfnutils\lfndel\lfndel.c:DeleteFileW(32): ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。[]
さて、どうやって消したものか…。