アカウント名:
パスワード:
それは CreateFile (要は open) のパラメータに大文字/小文字を同一視しないというパラメータを設定していないから (標準は同等扱い) というだけですよ。
ただ、制限上大文字と小文字が違うだけのファイル名は同一ディレクトリに存在できない、というのもありますが。
あと、一応 (file ID)_(分割したデータのハッシュ) という形を取ってるようなので、デバイスファイル名 (con とか prn とか) とかぶる事はないでしょうね。
そんな制限ありませんよ。大文字と小文字を区別するようにパラメータ指定して作成すると同居できますが、大文字と小文字を区別するようにパラメータ指定して開かない限り片方しか開けなくなるので普通やらないだけです。
ついでにそのパラメータを指定すると予約デバイス名とかぶるファイル名も作成できます。もちろん同じパラメータを指定しない限り開けません。
それは API で利用可能であるかどうかという意味での話であって、技術資料として出ている制限事項 [microsoft.com]とは別の話です。
"Do not use the following reserved device names for the name of a file:..." と "Do not assume case sensitivity. ..." の辺り。
どちらも「普通やらない」とか「普通に操作できない」とかではなく、制限事項に当てはまります。
そのすぐ上にあるこの説明は無視ですか?
The following rules enable applications to create and process valid names for files and directories regardless of the file system: (参考訳)以下の規則を守ることによって、アプリケーションはファイルシステムにかかわらず有効なファイル名を作成して処理できます:
The following rules enable applications to create and process valid names for files and directories regardless of the file system:
(参考訳)以下の規則を守ることによって、アプリケーションはファイルシステムにかかわらず有効なファイル名を作成して処理できます:
規則を守らない(たとえば大文字小文字だけが違うファイルを同居させる)ことによってFATでファイルを作れなかったり開けないファイルが出たりするだけです。だから「普通やらない」で何も矛盾していません。
そもそもそこに書かれている制限事項は暗黙にWin32サブシステムを前提にしていると思いますが。POSIXサブシステムにおけるファイル名の制限事項はMSの都合だけでは決められません。たとえばKB100625 [microsoft.com]では"Filenames are Case Sensitive on NTFS Volumes"とはっきり明言しています。KB120716 [microsoft.com]では、POSIX コマンドを使えば予約デバイス名のファイルを削除できると書かれています。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
ntfsにバグがあったとしたら? (スコア:0)
MSに泣き付いたって「そんな想定外の使い方は仕様外です。」で終わってしまうと思うんだが。
問題が起こったときntfsのパッチまで自社発行する覚悟がこの社長にあるとはとうてい思えんところが恐い。
# なんだか検索という業務をMSに丸投げしてるだけのように思われるのだが。。。
# それにしてもntfsって無限長のファイル名使えたんですな。
Re: (スコア:0)
Windowsに乗っかっていると大文字小文字は同一視されませんかね?
で、62進数化って大文字小文字をどちらも含んでいるのかが気になるところ。
あと、COMとかPRNとかWin32の名前空間で予約された名前には絶対にならないことは
保障されて(して)いるんでしょうかね。
Re: (スコア:1)
それは CreateFile (要は open) のパラメータに大文字/小文字を同一視しないというパラメータを設定していないから (標準は同等扱い) というだけですよ。
ただ、制限上大文字と小文字が違うだけのファイル名は同一ディレクトリに存在できない、というのもありますが。
あと、一応 (file ID)_(分割したデータのハッシュ) という形を取ってるようなので、デバイスファイル名 (con とか prn とか) とかぶる事はないでしょうね。
Re: (スコア:2, 参考になる)
そんな制限ありませんよ。大文字と小文字を区別するようにパラメータ指定して作成すると同居できますが、大文字と小文字を区別するようにパラメータ指定して開かない限り片方しか開けなくなるので普通やらないだけです。
ついでにそのパラメータを指定すると予約デバイス名とかぶるファイル名も作成できます。もちろん同じパラメータを指定しない限り開けません。
Re:ntfsにバグがあったとしたら? (スコア:3, 参考になる)
それは API で利用可能であるかどうかという意味での話であって、技術資料として出ている制限事項 [microsoft.com]とは別の話です。
"Do not use the following reserved device names for the name of a file:..." と "Do not assume case sensitivity. ..." の辺り。
どちらも「普通やらない」とか「普通に操作できない」とかではなく、制限事項に当てはまります。
Re:ntfsにバグがあったとしたら? (スコア:1)
そのすぐ上にあるこの説明は無視ですか?
規則を守らない(たとえば大文字小文字だけが違うファイルを同居させる)ことによってFATでファイルを作れなかったり開けないファイルが出たりするだけです。だから「普通やらない」で何も矛盾していません。
そもそもそこに書かれている制限事項は暗黙にWin32サブシステムを前提にしていると思いますが。POSIXサブシステムにおけるファイル名の制限事項はMSの都合だけでは決められません。たとえばKB100625 [microsoft.com]では"Filenames are Case Sensitive on NTFS Volumes"とはっきり明言しています。KB120716 [microsoft.com]では、POSIX コマンドを使えば予約デバイス名のファイルを削除できると書かれています。
Re: (スコア:0)