/ 最近 .rdf 追記 編集 設定 本棚

脳log[20120614] Windows怖いよ。



2012年06月14日 (木) [ruby-dev:45735] [ruby-trunk - Feature #6587][Open] proposal: adding new methods File.rootname and Pathname#rootname

最終更新: 2014-10-23T14:06+0900

Windows怖いよ。

 X:file.extというファイルと XX:alt.strmというファイル。

Y:\My\Desktop>echo aaa > C:a.txt

C:\a.txtを作成しようとしてアクセス拒否される。(C:a.txtは C:\a.txtと同じ?)

Y:\My\Desktop>cd /d C:
C:\>echo aaa > Y:a.txt

Y:\My\Desktop\a.txtが作成される。(Y:a.txtは必ずしも Y:\a.txtではない!)

C:\>cd /d Y:\My\Documents
Y:\My\Documents>cd /d C:
C:\>echo aaa > Y:a.txt

Y:\My\Documents\a.txtが作成される。(Y:a.txtがさっきの Y:\My\Desktop\a.txtと違う!)

C:\>echo aaa > T:a.txt

T:\a.txtが作成される。(初登場の Tドライブに関しては T:a.txtと T:\a.txtは同じ)

C:\>echo aaa > Z:a.txt

「指定されたパスが見つかりません。」(Zドライブが存在しなくても、Zがファイル名だという扱いは受けません)

X:a.txtは必ずしも Xドライブのルート直下の a.txtにアクセスするわけではなく、ワーキングディレクトリの履歴が影響してる雰囲気。コマンドプロンプトだけでなく irbでも同じ場所に作成された。ドライブごとにワーキングディレクトリがあるとか?カレントドライブという概念。X:foo\barはカレントドライブを上書きする相対パス?

ちなみに、Cや Tや Yが CCや TTや YYだったりすると、それは(ドライブレターではありえないため)カレントディレクトリの CC(TT,YY)というファイルの a.txtという代替ストリームへの書き込みになるみたい。(代替ストリームの内容を確認する簡単な方法は moreコマンドだって)

 / というパスと \ というパス。

大体どちらもカレントドライブの直下を指すみたい。直接 Windows APIを叩いてみてはいないけど。

 @2014-10-23 本当にあった。

=C: =D: など    ドライブ毎のカレントディレクトリを保持(移動したことのあるドライブのみ)