プロが教えるわが家の防犯対策術!

windowsで以下のような,フォルダ内の全ファイルのファイル名を先頭から順に読みこんでいき,読み込むごとにmain2()で処理を行うというプログラムを作りました.
これを急遽Linuxで動作させなければならなくなったのですが,windows.hを使用しているので当然動きません.
Linuxでdirent.hを使用して動かすにはどうすればよいのでしょうか.
あつかましいでしょうが,急ぎの用なので出来れば書き直していただけるとありがたいです.

char FilePathBmp[] = "temp\\*.bmp"; // ← Tempフォルダ内のbmpファイルを指定しています
char FindPathBmp[50];
HANDLE hFind;
WIN32_FIND_DATA fd;

CreateColortable();

hFind = FindFirstFile( FilePathBmp, &fd );

do
{
strcpy( FindPathBmp, fd.cFileName );
main2(FindPathBmp);
}
while( FindNextFile( hFind, &fd ) );

A 回答 (1件)

カレントのtestディレクトリ以下を表示するサンプルです。



> 急ぎの用なので出来れば書き直していただけるとありがたいです.

書き直したかったのですが、あまりにもWin32APIだらけなので
サンプルを掲載しました。
お急ぎでしたら
#ifdef __GNUC__
でも使って切り替えてみてはどうでしょう?


#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
char *str;
DIR *dp;
struct dirent *dir;

dp = opendir("test");
if(!dp)
exit(0);

while((dir = readdir(dp)) != NULL)
printf("%s\n", dir->d_name);

return 0;
}
    • good
    • 1
この回答へのお礼

お早い回答、ありがとうございました。
早速試してみます。

お礼日時:2008/02/13 17:04

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

このQ&Aを見た人はこんなQ&Aも見ています