アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記はLinuxのCのコードで、現Dirのファイルを取得するものすが、
その表示内容は、ファイル名とサブDir名の表示を行います。

Q1)サブDir名の下の、ファイルの取得をもするように改造できますか?
もし、可能ならば、お教え頂けないでしょうか?

//file name:getfile.c
//C Program to List Files in Directory
#include <dirent.h>
#include <stdio.h>
int main(void) {
DIR *d;
struct dirent *dir;
d = opendir(".");
if (d) {
while ((dir = readdir(d)) != NULL) {
printf("%s\n", dir->d_name);
}
closedir(d);
}
return(0);
}
以上、宜しくお願いします。

A 回答 (2件)

opendirにサブディレクトリを書くだけです

    • good
    • 0
この回答へのお礼

現在のDirのファイルとその下のDirのファイルを
すべて獲得表示出来ますか?

お礼日時:2019/06/17 13:28

再帰を使えば全てを取得できます


https://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0

1. opendir から closedir までの処理を、関数 A としてまとめる
2. 関数 main にて、カレントディレクトリ "." を引数として関数 A を呼ぶ
3. 関数 A にて、処理対象のファイルがディレクトリなら、ファイル名を引数として関数 A を再帰で呼ぶ

注意
ディレクトリがリンクされている場合、無限ループになる可能性があるので、何らかの対策が必要
    • good
    • 1
この回答へのお礼

有難うございます。
貴方の回答がベストアンサーですが間違って
他の回答をベストアンサーにしてしまいました。
ごめんなさい

お礼日時:2019/06/17 19:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!