Windows XP では、名前変更操作中に、ファイルが存在しないのにファイルが既に存在すると報告されるのはなぜですか?

Windows XP では、名前変更操作中に、ファイルが存在しないのにファイルが既に存在すると報告されるのはなぜですか?

コマンドラインから:

E:\menu\html\tom\val\.svn\tmp\text-base>ver

Microsoft Windows [Version 5.2.3790]

E:\menu\html\tom\val\.svn\tmp\text-base>dir
 Volume in drive E is DATA
 Volume Serial Number is F047-F44B

 Directory of E:\menu\html\tom\val\.svn\tmp\text-base

12/23/2010  04:36 PM    <DIR>          .
12/23/2010  04:36 PM    <DIR>          ..
12/23/2010  04:01 PM                 0 wtf.com3.csv.svn-base
               1 File(s)              0 bytes
               2 Dir(s)  170,780,262,400 bytes free

E:\menu\html\tom\val\.svn\tmp\text-base>rename wtf.com3.csv.svn-base com3.csv.svn-base
A duplicate file name exists, or the file
cannot be found.

E:\menu\html\tom\val\.svn\tmp\text-base>dir
 Volume in drive E is DATA
 Volume Serial Number is F047-F44B

 Directory of E:\menu\html\tom\val\.svn\tmp\text-base

12/23/2010  04:36 PM    <DIR>          .
12/23/2010  04:36 PM    <DIR>          ..
12/23/2010  04:01 PM                 0 wtf.com3.csv.svn-base
               1 File(s)              0 bytes
               2 Dir(s)  170,753,064,960 bytes free

E:\menu\html\tom\val\.svn\tmp\text-base>

E:\menu\html\tom\val\.svn\tmp\text-base>dir /ah
 Volume in drive E is DATA
 Volume Serial Number is F047-F44B

 Directory of E:\websvn_menu\html\tom\val\.svn\tmp\text-base

File Not Found

このディレクトリには他のファイルがないので、どうしたらよいかわかりません。com3.csv.svn-base明らかに他のファイルが存在しないのに、Windows XP ではなぜ、ここに既に名前の付いたファイルがあると報告されるのでしょうか?

更新: これは私の仕事用マシン、WinXP 64 ビットで発生しています。しかし、自宅のマシン、WinXP 32 ビットでも失敗します。ただし、Linux では問題なく動作します。これは NTFS ファイルシステムのバグでしょうか?

答え1

チンチンチン。

Windows と DOS には、すべてのディレクトリに存在するファイル名として予約されているデバイス名があります。COM3 もその 1 つです。おそらく、NUL、LPT1、CON (などCOPY CON) などはご存知でしょう。問題は、名前を COM3.anything.anything に変更しようとしていることです。Windows には DOS 時代の下位互換性がまだいくつか残っており、その互換性を破るようなファイル名の付け方は許可されません。

Wikipedia によれば、名前変更のターゲットとして長い UNC を使用できるはずだそうです\\mycomputer\E$\menu\html\tom\val\.svn\tmp\text-base\com3.csv.svn-base

答え2

ディレクトリに隠しファイルがある可能性がありますか? すべての隠しファイルを表示するには、「dir /ah」を試してください。隠しファイルがない場合、「chkdsk /fe:」を実行してファイルシステムの問題がないか確認してください (再起動が必要になる場合があります)。それでも問題が解決しない場合は、ハード ドライブに不良セクタがある可能性があります。不良セクタを確認するには、「chkdsk /re:」を実行してください。

関連情報