Re: Глюк FindFirstFile
От: mpeg3  
Дата: 29.05.06 19:37
Оценка: 1 (1) +1
M>Обнаружил глюк в FindFirstFile — например при поиске в папке C:\Documents and Settings\User\Главное меню\Программы\Стандартные с фильтром *8* ф-ция находит файлы Командная строка.lnk, Проводник.lnk С этим же фильтром находит и другие файлы в других директориях, в основном с расширениями url, lnk, xml, htm, obj. Кто-нибудь знает как с этим бороться, где почитать об этом? Система — WinXP Rus SP2.

Разобрался, FindFirstFile ищет и по коротким именам файлов, а они у этих двух — 859D~1.LNK, BAE8~1.LNK
Re[2]: Глюк FindFirstFile
От: McQwerty Россия  
Дата: 30.05.06 08:50
Оценка: 3 (1)
Здравствуйте, mpeg3, Вы писали:

M>>Обнаружил глюк в FindFirstFile — например при поиске в папке C:\Documents and Settings\User\Главное меню\Программы\Стандартные с фильтром *8* ф-ция находит файлы Командная строка.lnk, Проводник.lnk С этим же фильтром находит и другие файлы в других директориях, в основном с расширениями url, lnk, xml, htm, obj. Кто-нибудь знает как с этим бороться, где почитать об этом? Система — WinXP Rus SP2.


M>Разобрался, FindFirstFile ищет и по коротким именам файлов, а они у этих двух — 859D~1.LNK, BAE8~1.LNK


Есть такое дело: KB327151
Рекомендуют отключить создание кортких имён: KB210638, KB121007.

SYMPTOMS
If you create a set of files that have long file names, and then you use FindFile/FindNextFile or the dir command to run a query, the query does not return the correct set of files.
CAUSE
If you turn on automatic short file name generation for the files, every file has a short name and a long name. The short name algorithm may generate very similar short file names for two different files. For example:
dir /x 142183*.*
01/04/2002 11:48 AM 623,826 142183~2.PRT 14218301000.prt
01/11/2002 07:14 AM 72,752 142183~1.PRT 14012516000.prt

If you use FindFile/FindNextFile or the dir command to run a query on a set of files, the file system searches for all file names and short file names that match the particular expressions (for example, 142183*.*). Because files may share the same short file name, the results of the query may contain file names that are not consistent with the query.
WORKAROUND
To resolve this problem, turn off automatic short file name generation (8.3 name creation) on the NTFS file system partitions on the computer.

NOTE: When you turn off automatic short file name generation, it only applies to any new files that are created on the computer. It does not remove the short file names for the files that already exist on the computer. To receive the correct results from a query, copy the existing files to a new folder, and then run the query.

For additional information about how to turn off automatic short file name generation, click the article number below to view the article in the Microsoft Knowledge Base:
210638 How to Disable Automatic Short File Name Generation

121007 How to Disable the 8.3 Name Creation on NTFS Partitions

IMPORTANT: If you turn off automatic short file name generation, it may cause difficulties for programs that rely on short file names.
STATUS
This behavior is by design.

Глюк FindFirstFile
От: mpeg3  
Дата: 29.05.06 14:52
Оценка:
Обнаружил глюк в FindFirstFile — например при поиске в папке C:\Documents and Settings\User\Главное меню\Программы\Стандартные с фильтром *8* ф-ция находит файлы Командная строка.lnk, Проводник.lnk С этим же фильтром находит и другие файлы в других директориях, в основном с расширениями url, lnk, xml, htm, obj. Кто-нибудь знает как с этим бороться, где почитать об этом? Система — WinXP Rus SP2.
Re: Глюк FindFirstFile
От: MShura  
Дата: 29.05.06 15:03
Оценка:
M>Обнаружил глюк в FindFirstFile — например при поиске в папке C:\Documents and Settings\User\Главное меню\Программы\Стандартные с фильтром *8* ф-ция находит файлы Командная строка.lnk, Проводник.lnk С этим же фильтром находит и другие файлы в других директориях, в основном с расширениями url, lnk, xml, htm, obj. Кто-нибудь знает как с этим бороться, где почитать об этом? Система — WinXP Rus SP2.

Как бороться не знаю, но интересно.
Находит ли такой фильтр файлы без русских букв?
Re[2]: Глюк FindFirstFile
От: mpeg3  
Дата: 29.05.06 18:44
Оценка:
MS>Как бороться не знаю, но интересно.
MS>Находит ли такой фильтр файлы без русских букв?

Находит, десятками. В принципе, бороться можно перепроверяя, подходит ли имя файла под маску.
Re[3]: Глюк FindFirstFile
От: MShura  
Дата: 30.05.06 09:44
Оценка:
MQ>Есть такое дело: KB327151
MQ>Рекомендуют отключить создание кортких имён: KB210638, KB121007.
Для FAT невозможно отключить.
Re[2]: Глюк FindFirstFile
От: MShura  
Дата: 30.05.06 09:46
Оценка:
M>Разобрался, FindFirstFile ищет и по коротким именам файлов, а они у этих двух — 859D~1.LNK, BAE8~1.LNK

Странно, что я забыл такую вещь, ведь я сам реализовывал подобие FindFirstFile и функция имела такое побочное действие.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.