C言語で/home/testのディレクトリ配下の ファイルを全て削除したい場合は どうすればいいですか? System関数を使ってrmのLinuxコマンドを

C言語関連 | Linux系603閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

ありがとございます。

お礼日時:1/29 2:53

その他の回答(3件)

0

ありますよ。 rmに代わるモノを作ればいいのです。 サブディレクトリ下を含めたファイルの一括操作は、再帰的呼び出しの良い例題になります。

0

ひとつの関数で、すべてを削除するような標準関数はありません。 ファイル一覧を取得して、ディレクトリだったら、さらに中のファイル一覧を取得して、、、、で、ファイルを全部消して。 という関数を自作するしかないです。 一般的には、再帰を使って実装する事が多いです。 シンボリックリンクなどで、上の階層にリンクが張られていると、ループして終わらなくなるなどもあり得るので、その点を気を付けて実装するのが良いかと思います。 確か、上の階層でunlinkしても、消えたように見えたような気もしますが、色々とやられたような気もします。

0

find ですね。 find /home/test -type f -exec rm -f {} \; で行きます。 ディレクトリは残ります。 まあ、その後、 find /home/test -mindepth 1 -depth -exec rmdir {} \; でディレクトリも消えます。