Почему 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

Я не знаю, что с этим делать, так как в этом каталоге нет других файлов. Почему Windows XP сообщает, что здесь уже есть файл с таким именем, com3.csv.svn-baseкогда здесь явно нет других файлов?

ОБНОВЛЕНИЕ: Это происходит на моей рабочей машине, WinXP 64-bit. Но это также не работает на моей домашней машине, WinXP 32-bit. Однако в Linux это работает просто отлично. Может быть, это ошибка файловой системы NTFS?

решение1

Динь-динь-динь.

В Windows и DOS имена устройств зарезервированы как имена файлов, которые присутствуют в каждом каталоге. COM3 — один из них. Вы, вероятно, знакомы с NUL, LPT1, CON (например COPY CON, ) и т. д. Ваша проблема в том, что вы пытаетесь переименовать его в COM3.что угодно.что угодно. Windows, в которой все еще есть некоторая обратная совместимость с эпохой DOS, не позволит вам назвать файл таким образом, чтобы это нарушилось.

\\mycomputer\E$\menu\html\tom\val\.svn\tmp\text-base\com3.csv.svn-baseВикипедия говорит мне, что в качестве цели переименования можно использовать длинное UNC-имя .

решение2

Может ли быть скрытый файл в каталоге? Попробуйте "dir /ah", чтобы отобразить все скрытые файлы. Если скрытых файлов нет, запустите "chkdsk /fe:", чтобы проверить файловую систему на наличие проблем (может потребоваться перезагрузка). Если это не решит проблему, возможно, на жестком диске есть поврежденные сектора. Запустите "chkdsk /re:", чтобы проверить систему на наличие поврежденных секторов.

Связанный контент