Size: a a a

Ассемблер

2020 October 05

A

Aleksandr in Ассемблер
мне лень
источник

N

Nrys in Ассемблер
Dima Richev
Попробуй после нахождения нужной папки - заново использовать FindFirstFile, но уже с полученной директорией.
Всё, разобрался, в отладчике просто тупил немного
источник

N

Nrys in Ассемблер
Теперь все работает, только теперь другая проблема, как мне не заходить повторно в директории в которых я был
источник

DR

Dima Richev in Ассемблер
Nrys
Теперь все работает, только теперь другая проблема, как мне не заходить повторно в директории в которых я был
Храни их в массиве\переменных, и проверяй, была ли уже эта директория, или нет.
источник

N

Nrys in Ассемблер
Ну вот я тоже думал об этом, просто поддиректорий может быть любое количество
источник

N

Nrys in Ассемблер
И мне кажется так не получится
источник

DR

Dima Richev in Ассемблер
Nrys
Ну вот я тоже думал об этом, просто поддиректорий может быть любое количество
Не обязательно хранить их полностью все.
Если ты не собираешься возвращаться - можно хранить так:
Сохранение директории, в которой был последний раз
Эта директория уже была?
Получение следующей директории, сохранение её в переменную.
источник

N

Nrys in Ассемблер
У меня алгоритм такой: Сначала ищу только файлы в первой директории, затем как файлы закончились, я повторно вызываю функцию поиска и ищу в этой же директории папки, если есть, то перехожу в неё, смотрю, есть ли там файлы, если нет, то ищу папки, если есть, перехожу, если нету, то возвращаюсь в предыдущую директорию и начинаю поиск папок
источник

N

Nrys in Ассемблер
Вот и получается надо сохранять всю цепочку C:\dir\dir\dir
источник

N

Nrys in Ассемблер
Короче я прям не знаю что и делать
источник

A

Aleksandr in Ассемблер
ищи файлы и папци в одном цикле, если нашел папку - рекурсивно вызывай поиск в найденной папке
источник

N

Nrys in Ассемблер
Ну вот, так и делаю, проблема только в том, что при возвращении в предыдущую директорию мне надо как-то сохранить, что в такой-то я уже был, чтобы не заходить повторно и не было цикла
источник

N

Nrys in Ассемблер
Может чего не понимаю, я просто второй день сижу, извиняюсь если что
источник

A

Aleksandr in Ассемблер
в чем твоя конечная цель? найти определенный файл или найти все возможные файлы?
источник

N

Nrys in Ассемблер
Перечислить все файлы
источник

DR

Dima Richev in Ассемблер
Nrys
Вот и получается надо сохранять всю цепочку C:\dir\dir\dir
Как-то вот так. Надеюсь поймёшь мысль.
источник

N

Nrys in Ассемблер
Ну зайти во все директории
источник

A

Aleksandr in Ассемблер
сча сам попробую. никогда не делал рекурсию на ассемблере, интересно стало
источник

N

Nrys in Ассемблер
Dima Richev
Как-то вот так. Надеюсь поймёшь мысль.
Только вот где получаем директорию и ищем в ней файлы, то там к примеру 5 папок и мы заходим в первую, мы в эней ничего не нашли и возвращаемся назад и переходим во 2 папку, но для этого придётся уже сохранять Директории/Поддиректории
источник

DR

Dima Richev in Ассемблер
Nrys
Только вот где получаем директорию и ищем в ней файлы, то там к примеру 5 папок и мы заходим в первую, мы в эней ничего не нашли и возвращаемся назад и переходим во 2 папку, но для этого придётся уже сохранять Директории/Поддиректории
Это будет происходить в первом цикле, где мы ищем файл в основной директории.
Т.е получится рекурсия:

Получение файлов и папок в директории:
Это файл? - Это нужный файл?
Это не файл - значит папка
Получаем в ней файлы и директории
И так же проверяем по циклу.
Нужно будет реализовать процедуру.

Вообще, запутанная вещь, конечно.
источник