2

Я искал следующее, и он дал мне точный вывод (имена папок изменились)

C:\temp>dir *950*.pdf /s
 Volume in drive C has no label.
 Volume Serial Number is ABCDE

 Directory of C:\temp\e\h\d\20100809

08/08/2010  10:54 PM         1,632,434 09_08_2010_004.pdf
08/08/2010  10:54 PM         1,368,895 09_08_2010_003.pdf
08/08/2010  10:54 PM         2,111,360 09_08_2010_005.pdf
               3 File(s)      5,112,689 bytes

Я не понимаю, почему " 950 " сопоставляется с этими 3 файлами ...!

Edit1

Я на самом деле переместил его в c:\temp\ на этот раз, и он соответствует одному из них!

 C:\temp\20100809>dir *950*.pdf
 Volume in drive C has no label.
 Volume Serial Number is ABCDE

 Directory of C:\temp\20100809

08/08/2010  10:54 PM         2,111,360 09_08_2010_005.pdf

Edit2

@ Гравитация ответ на точку!

C:\temp\20100809>dir *950*.pdf /x
 Volume in drive C has no label.
 Volume Serial Number is ABCDE

 Directory of C:\temp\20100809

08/08/2010  10:54 PM         2,111,360 09507E~1.PDF 09_08_2010_005.pdf

2 ответа2

8
dir /x

Из соображений совместимости Windows генерирует имя 8.3 для каждого созданного полного имени файла, а код сопоставления с подстановочными знаками (FindFirstFile()) проверяет как исходные, так и сокращенные имена. Используйте dir /x чтобы увидеть, какие короткие имена присваиваются каждому файлу.

Обычно автоматически генерируемые короткие имена выглядят как 090820~1.PDF и 090820~2.PDF и так далее, но есть исключения:

[...] если по крайней мере 4 файла или папки уже существуют с одинаковыми начальными 6 символами в их коротких именах, выделенный LFN вместо этого усекается до первых 2 букв базового имени (или 1, если базовое имя имеет только 1 букву) сопровождаемый 4 шестнадцатеричными цифрами, полученными из недокументированного хэша имени файла, сопровождаемого [...]

Перемещение файла в пределах одного раздела не изменяет ни одно из его имен, а только перемещает их.


При использовании файловой системы NTFS создание имени 8.3 можно отключить в масштабе всей системы, используя:

fsutil behavior set disable8dot3

Однако это не повлияет на существующие имена.

0

У меня есть эта проблема, и я испытал желание использовать fsutil для отключения коротких имен в масштабе всей системы, но решил отказаться от нее. Вместо этого я обнаружил, что вы можете использовать fsutil.exe, чтобы связать файл с более коротким именем, как в:

fsutil.exe file setshortname 175002886.pdf ~1752886.pdf

Вам нужно будет сделать это как администратор.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .