
下記は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);
}
以上、宜しくお願いします。
No.1ベストアンサー
- 回答日時:
opendirにサブディレクトリを書くだけです
No.2
- 回答日時:
再帰を使えば全てを取得できます
https://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0
1. opendir から closedir までの処理を、関数 A としてまとめる
2. 関数 main にて、カレントディレクトリ "." を引数として関数 A を呼ぶ
3. 関数 A にて、処理対象のファイルがディレクトリなら、ファイル名を引数として関数 A を再帰で呼ぶ
注意
ディレクトリがリンクされている場合、無限ループになる可能性があるので、何らかの対策が必要
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パスから最後のディレクトリだ...
-
batファイルでrenameができませ...
-
vba dir の相対パス
-
FindFirstFileとFindNextFileで...
-
readdir()で得られるファイル・...
-
シンボリックリンクを検出でき...
-
dos変数の%~dp0は powershellで...
-
エクセルVBA コードが同じでも...
-
連番のファイルを何個も開きたい
-
VBAでCSVファイルを途中行まで...
-
perlでcsvファイルを読む(ダブ...
-
sedの動作
-
ListBoxのデータを高速でファイ...
-
ファイルの存在の有無を確かめ...
-
requireで同じライブラリを複数...
-
C言語で特定の行を抽出する方法...
-
awkスクリプトでダブルクォーテ...
-
perlのflock関数でロックをかけ...
-
MATLAB グローバル変数の宣言
-
utf-8のCSVをshift_jisに変換し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windowsで複数のファイルを同じ...
-
batファイルでrenameができませ...
-
vba dir の相対パス
-
パスから最後のディレクトリだ...
-
FindFirstFileとFindNextFileで...
-
readdir()で得られるファイル・...
-
ディレクトリー内のリスト出力...
-
ファイル名と更新日付の取得に...
-
C言語でファイル名を取得
-
ファイルの削除について
-
シェルでfind結果を文字列で比...
-
dos変数の%~dp0は powershellで...
-
フォルダに入っているファイル...
-
サーバー内にある指定した拡張...
-
CGIで日本語名ファイルのアップ...
-
find関数が1階層(カレントディ...
-
下のディレクトリ(3つ)に含ま...
-
ファイル名が日本語の物をダウ...
-
<>の意味が分かりません
-
makefileでファイルをコピー(...
おすすめ情報