C言語関係掲示板

過去ログ

No.541.サブディレクトリの削除方法

[戻る] [ホームページ]
No.4526

サブディレクトリの削除方法教えてください。
投稿者---けい(2003/01/22 22:22:02)


はじめまして、けいと言います。
初投稿ですがよろしくお願いします。

「ディレクトリ名を指定して、指定した全てのサブディレクトリと
全てのファイルの削除する。」と言うプログラムを作りたいんですけど、
どうやれば良いのかわかりません。

どなたか助けてください。お願いします。

No.4625

Re:サブディレクトリの削除方法教えてください。
投稿者---ともじ(2003/01/24 23:14:02)


こんばんは。

>「ディレクトリ名を指定して、指定した全てのサブディレクトリと
>全てのファイルの削除する。」と言うプログラムを作りたいんですけど、
>どうやれば良いのかわかりません。

環境がわからないのですが、通常のコンパイラに用意されている
非標準の関数 rmdir を使うと、空のディレクトリ以外は削除することが
できません。ですから、先に、ディレクトリ中のファイルやディレクトリ
を削除する必要が出てきます。
ディレクトリの中身は、opendirして、readdir及びstatで知ることが
できるので、(http://f1.aaa.livedoor.jp/~pointc/log316.html)
ファイルならremoveで削除、ディレクトリなら更にopendirして・・・
というように再帰的に処理し、再帰で戻ってくるときに空になった
ディレクトリをrmdirで削除、ということになると思います。

なお、remove以外は非標準のライブラリ関数になります。

No.4632

Re:サブディレクトリの削除方法教えてください。
投稿者---kikk(2003/01/25 00:09:32)


ども。


マトモな方法はすでに紹介されているようなので、インチキっぽいのを。
(非標準関数の)chdir()で対象のディレクトリに移動した後、system()で
"rm -rf *"等のディレクトリを削除するコマンドを使うという方法が
あります。あまりコードを書きたくない場合は参考までに。。


では。