2016-03-09 12 views
0

Я хочу показать полный путь для всех подпапок и файлов каталога по одному в строке в GCC. Существующие вопросы не предоставляют решения для перечисления полного пути.Перечислите полный путь для всех вложенных папок и файлов внутри каталога по одной в строке в GCC

Для например, Если у меня есть каталог/корень/ABC, который содержит два файла (a.txt и b.txt) и каталог хуг, то код должен отображать следующую

/root/abc 
/root/abc/a.txt 
/root/abc/b.txt 
/root/abc/xyz 
+1

Какой язык? Какая платформа? –

+0

@ FrankMeerkötter C язык в платформе linux – pseudonym

+0

@ FrankMeerkötter Спасибо за редактирование! :) – pseudonym

ответ

-1

Найдено ответ ! Просто внесено незначительное изменение в ответ, указанный для this question Просто напечатайте атрибут «name» вместе с «entry-> d_name» внутри функции listdir.

printf("%*s[%s%s]\n", level*2, "", name, entry->d_name); 

Примечание: Убедитесь, что вход вы обеспечиваете функции не имеет завершающую «/», потому что в этом случае вы получите «//» вместо «/» в полном пути.

Например, если входной сигнал дается в/корень/абв /, выход будет

/root/abc//a.txt 
/root/abc//b.txt 
/root/abc//xyz 
+0

Вам лучше использовать 'nftw', как ответ [здесь] (http://stackoverflow.com/a/29402705/ 841108) –

+0

Мне трудно понять этот код. Это просто и подходит мне! – pseudonym

+0

Вы прочитали документацию по [nftw (3)] (http://man7.org/linux/man-pages/man3/nftw.3.html)? –