ディレクトリ内のファイル名取得
maruchan と言うものです。
よろしくお願いします。
さっそく質問
環境
cygwin gcc version 3.3.1
やりたい処理は、ディレクトリ内の全てのファイル名を取得したいと思っています。
内容を見ると単純ですが、そのファイルの数が約10万ファイルぐらいありまして・・・ファイル名を取得するだけで結構な時間が掛かってしまいます。
そこで 私が質問したいのは 高速にファイル名を取得する方法はないのか知りたいです。
私が書いたサンプルです。
/*******************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <dirent.h>
int fileSelector (const struct dirent *entry);
int main(void)
{
int i = 0;
int dirCnt = 0;
struct dirent **dp = NULL;
char dirPath[256];
strcpy(dirPath, "./file/");
dirCnt = scandir(dirPath, &dp, fileSelector, alphasort);
for(i=0; i < dirCnt; i++) {
/* 本来はここでファイル名を何かに登録する */
dp[i]->d_name;
}
free(dp);
return 0;
}
int fileSelector (const struct dirent *entry)
{
if (strcmp (entry->d_name, ".") == 0 || strcmp (entry->d_name, "..") == 0)
{
return 0;
}
return 1;
}
/*******************/
お礼
返事がホントに遅くてなってしまってすみません。 FindFirstFileでネット検索して使い方を勉強し なんとか使えるようになりました。 助かりました。どうもありがとうございます。