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

ディレクトリを探索していき、ファイル一覧を表示していくような機能が欲しいのですが、自分でプログラムしたくてもどのように始めればよいのかわからず困っています。後々プログラミングの勉強にも使いたいですのでサンプルのプログラムなどがあれば見せていただきたいです。
できれば C もしくは C++ が希望です。

具体的な内容としましては、
『パソコンのCドライブなどから始めて、その中にあるディレクトリとファイル一覧を表示して、ディレクトリが存在すればその中に入り、またファイルとディレクトリの一覧を表示する。それを繰り返して行き、一番下まで行ったら、ひとつ上の階層に戻り同じことを繰り返す』
という感じです。再帰的なプログラムだと助かりますが、他にもよい方法があれば教えていただきたいです。

宜しくお願いします。

A 回答 (3件)

http://www.doumo.jp/modules/general/CFindFile.html
とか参考にしてはどうですか?

再起的に取得するにはFindFirstFile(FindNextFile)で調べたパスを更にGetFileAttributes
でディレクトリかファイルを調べ
ディレクトリならまた自分自身を呼びます。
    • good
    • 0
この回答へのお礼

情報有難う御座います。
とても参考になりました。

お礼日時:2003/12/07 12:18

以下のプログラムで出来ます


C++Builderでのプログラムです
GetDiskSpace(C:\");とすればCドライブを検索してくれます

GetDiskSpace(const AnsiString root)
{
WIN32_FIND_DATA data;
HANDLE hFind;

hFind = FindFirstFile((root+"*.*").c_str(),&data);
if(hFind == INVALID_HANDLE_VALUE) throw Exception(SysErrorMessage(GetLastError()));

Application->ProcessMessages();
try
{
do
{
if(strcmp(data.cFileName,".")!=0 && strcmp(data.cFileName,"..")!=0)
{
if(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) GetDiskSpace(root+data.cFileName+"\\");//検索ファイルがフォルダ /再帰処理
else //検索ファイルがファイル ここに必要な処理をいれる
}
} while(FindNextFile(hFind,&data));
}
__finally { FindClose(hFind); }
}
    • good
    • 0
この回答へのお礼

具体的なコードを載せていただき有難う御座います。
ぜひ参考にさせていただきます。

お礼日時:2003/12/07 12:19

ドライブという単語があるのでWindowsだという想定で。



FindFirstFile
FindNextFile
この2つのWindowsAPIでファイルの一覧を取得できます。

具体的なコードは、この2つのAPI名と"再帰"のキーワードでgoogle等で検索をかければいろいろと出てきます。

ここのサイトでも、"FindFirstFile"でいろいろ出てきますよ。
    • good
    • 0
この回答へのお礼

Windowsで実行したいということを書くのを忘れていました。すみません。

情報ありがとうございました。

お礼日時:2003/12/07 12:16

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