Вопрос № 89738: Всегда ли функции WinAPI FindFirstFile, вызванная с маской "*", первой выдает имя "." (т.е. текущую папку)? Т.е вроде бы, по наблюдениям, это так, но можно ли положиться на это, как на безусловное правило?
Спасибо....
Вопрос № 89.738
Всегда ли функции WinAPI FindFirstFile, вызванная с маской "*", первой выдает имя "." (т.е. текущую папку)? Т.е вроде бы, по наблюдениям, это так, но можно ли положиться на это, как на безусловное правило?
Спасибо.
Отправлен: 02.06.2007, 17:34
Вопрос задал: Fole (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ilkras
Здравствуйте, Fole!
Думаю, что файлы отсортированы по именам. Точка предсавлена значением 46, тогда как первая буква "А" предсавлена значением 65. Так что посмотрите в таблицу ASCII кодов. Может быть найдете подходящее начало для имени файла со значением меньще 46.
Удачи
Ответ отправил: Ilkras (статус: Студент)
Ответ отправлен: 02.06.2007, 17:42 Оценка за ответ: 5 Комментарий оценки: Похоже все не так просто. MSDN на тему FindNextFile говорит, что в случае NTFS файлы и правда ищутся in alphabetical order. Поэкспериметрировал с именами начинающимися на +-!#%, но первыми все равно выползают папки "." и "..", а вот всегда ли так? Так что вопрос по прежнему открыт. Вам спасибо за идею.
Отвечает: Vest
Здравствуйте, Fole!
отвечу по поводу ./.. Если взглянешь на свой жёсткий диск с помощью WinHex, то обрати внимание, что все папки содержат сперва ".", а потом "..". По правде говоря, это я наблюдаю только в FAT системе... думаю это просто, когда создаёшь пустой каталог, уже знаешь как выйти в корень (сохраняется указатель на корневую директорию), или в родительскую (что тоже имеется).
Насчёт NTFS ничего полезного сказать не могу, надо читать. там всё сделано немного сложнее, там директории такие же файлы, только имеют маленький размер и их атрибуты прописываются вобщем потоке.
Могу посоветовать небольшую книжку: DATA RECOVERY E-BOOK V1.5 (data-recovery-book.pdf)
--------- "Халявы не бывает" (c)
Ответ отправил: Vest (статус: 5-ый класс)
Ответ отправлен: 02.06.2007, 20:30 Оценка за ответ: 5 Комментарий оценки: Не очень пойму, имеет ли это отношение к поднятому вопросу. Во всяком случае и для FAT и для NTFS и функции FindFirstFile, FindNextFile и команда dir в консоле, по моим наблюдениям, всегда первыми выдают "." и "..", если только это не корень диска. Но можно ли это считать абсолютным правилом? Вопрос не снят. Впрочем, спасибо.