| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > как работают findfirst () и findnext () |
| Автор: SergeyMitrofanov 30.5.2007, 18:58 |
| Compiler: BC++ 3.1 На pure С написана программа, которая должна перебирать файлы из каталога в лексикографическом порядке, в алфавитном порядке. Использовались функции done = findfirst ("*.*", & info_file, 0); done = findnest(& info_file); Но почему-то, откомпилированный код иногда читает файлы не в алфавитном порядке. Файлы в директорию записывает пользователь под WindowsXP SP2. Просмотр файлов осуществляется в Far - где мы видим файлы в отсортированном порядке. Почему иногда программа читает файлы в алфавитном порядке, а иногда хаотично - берет первым файл из середины списка файлов? По какому правилу выбираются файлы функциями findfirst () и findnext ()? Разве не по правилу - что первый файл - это тот, который стоит самым первым в алфавитном списке файлов внутри директории? |
| Автор: threef 30.5.2007, 19:49 |
| Ну уж точно не в алфавитном порядке. чтобы посмотреть, в каком порядке прочтет findnext запусти из командной строки dir. |
| Автор: dumb 31.5.2007, 00:04 |
| читают в том порядке, в котором файлы попадали в каталог. по сути, каталог(директория,папка) = файл-список, где каждый файл представлен "строчкой". копируешь в каталог файлик - "строчка" с его именем и другими атрибутами дописывается в конец файла-списка(каталога). findfirst и findnext просто читают этот файл-список построчно. поэтому необходимо получаемый список сортировать, что и делают все файл-манагеры... |
| Автор: BreakPointMAN 31.5.2007, 13:25 |
| Если NTFS, то возвращаться будет в лексикографическом порядке. |
| Автор: dumb 31.5.2007, 13:37 | ||
хех.. не зналЬ
|
| Автор: threef 1.6.2007, 16:18 |
| Это Борланд такой умный, что ль? |
| Автор: JackYF 1.6.2007, 16:40 |
А причем здесь Борланд? За файловые системы и особенности размещений файлов в папке он не отвечает. |
| Автор: Любитель 2.6.2007, 12:42 |
Ну, скорее списка файлов в индексной таблице |
| Автор: JackYF 3.6.2007, 14:40 |
Ну, это и имелось в виду. |