|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
Необходимо вывести все директории и файлы по указанному пути рекурсией. На данный момент написан рекурсивный вывод файлов. Но не работает, если в пути есть пробел, например, c:\Program Files (пытался экранировать, писать \\, но ничего не получилось) и если нужно вывести по маске, например, c:\*.txt. Использую компилятор MinGW. Библиотеки типа буст или filesystem также не могу использовать (могут быть использованы только те, что есть сейчас). Соответственно, вопрос, как выводить по маске, например, c:\Program Files\*.txt и сделать возможной работу с пробелами в путях. Путь задается пользователем Код: plaintext 1.
. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 14:34 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
Придётся таки забросить копи-паст случайных кусков кода из гугля и начать изучать программирование вообще и отладку в частности. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 14:54 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Придётся таки забросить копи-паст случайных кусков кода из гугля и начать изучать программирование вообще и отладку в частности. Не будь это единичным заданием (всего их пару штук), то так бы и сделал. Но в моем случае - это, как минимум, нерационально. Можете сказать что-нибудь по теме? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 15:20 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
Пути с пробелами указывайте в кавычках... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 15:25 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
d7i, Добрый день, я был бы вам премного благодарен за любой, даже самый простейший пример. Дело в том, что путь "c:\Program Files" или C:\"Program Files"\, заключенный в кавычки, все же не срабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 15:28 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
Вот такое у меня работает... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 16:06 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
VInill80s, пожалуйста не заставляй нас компилировать и делать за тебя работу. Ты пишешь что "не работает, если в пути есть пробел, например, c:\Program Files" Детализируй какая из функций opendir? readdir? closedir? выдала неверное (non-expected) значение. Приведи точные версии ОС и компиллятора. С точностью до минорных. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 16:06 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
mayton VInill80s, пожалуйста не заставляй нас компилировать и делать за тебя работу. Ты пишешь что "не работает, если в пути есть пробел, например, c:\Program Files" Детализируй какая из функций opendir? readdir? closedir? выдала неверное (non-expected) значение. Приведи точные версии ОС и компиллятора. С точностью до минорных. >43k сообщений >из них 20+% по плюсам >не понимает, что ошибка с некорректным путем выпадает при открытии, то есть opendir ))) мы вам перезвоним ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 16:24 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
VInill80s, вместо Код: plaintext 1.
напиши Код: plaintext 1.
Оба варианта говно, но второй должен работать. Конечно, если компилятор не шибко новый, а то gets настолько говно, что даже из стандартной библиотеки выкинули. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 16:26 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
vAH_O6Vg, Не, этот тоже не прокатил(. (но все равно спасибо) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 16:30 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
VInill80s, попробуй перепиши на WindowsAPI с использованием FindFirstFile, FindNextFile ... e.t..c как здесь https://docs.microsoft.com/en-us/windows/win32/fileio/listing-the-files-in-a-directory ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 16:34 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
VInill80sне понимает, что ошибка с некорректным путем выпадает при открытии, то есть opendir ))) А у меня - не выпадает: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 16:43 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
VInill80s, только дошло, что ты ересь творишь. opendir не поддерживает маски, он просто открывает указанную директорию. Тебе WinAPI FindFirstFile/FindNextFile надо использовать. Или самому ручками проверять соответствие маске. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 16:56 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
Да он, скорее всего, двойной слэш в пути не ставит, оттого и не работает.... Я ж не зря особо выделил dirp = opendir("C:\\Program Files\\*.*"); // !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 16:56 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
Он же пишет что слеши ставил. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 17:02 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
d7i, у него путь вводит пользователь, там экранировать не нужно. scanf("%s", path) нарезает ввод по пробелам, gets нарезает по переносам строк. Но opendir не умеет маски, поэтому всё равно не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 17:06 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
Думаю да. Ему эта грёбаная маска приснилась где-то. Ну что-же пусть проверяет на каждой итерации что path соотвествует маске *.txt. И это тот еще гимор ведь у негоже не С++ а С. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 17:11 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
vAH_O6Vg Но opendir не умеет маски, поэтому всё равно не работает. Во блин, не обратил внимание что там ещё и маска... Да уж, opendir тут совем не катит. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 17:40 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Код: sql 1. 2.
кстати, а если это внутри проги не сделать, она чё закончится и оставит открытую диру где-то в памяти? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 18:49 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
maytonу негоже не С++ а С. У него солянка сборная. В конце листинга рядом printf и cout. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 18:53 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
А точно солянка. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 18:59 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
полудух Dimitry Sibiryakov Код: sql 1. 2.
кстати, а если это внутри проги не сделать, она чё закончится и оставит открытую диру где-то в памяти? С точки зрения файловой системы фолдер - это тоже некоторый подвид файла. Поэтому думаю что будет утечка файловых хендлов. Но не готов точно сказать надо смотреть более вооруженным глазом. Для нашего случая - скорее всего хендлы удалятся с финалом процесса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 19:01 |
|
c++ вывод каталогов и файлов в пути с пробелами и по маске
|
|||
---|---|---|---|
#18+
полудух Dimitry Sibiryakov Код: sql 1. 2.
кстати, а если это внутри проги не сделать, она чё закончится и оставит открытую диру где-то в памяти? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2019, 22:10 |
|
|
start [/forum/topic.php?fid=57&fpage=11&tid=2017529]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 143ms |
0 / 0 |