在Windows上一直使用_findfirst查找文件,以為是標准庫裡的,可以在Linux下直接使用。今晚試了一下失敗了。
Linux下使用readdir來掃描一個目錄下的項目。首先,需要包含頭文件dirent.h。然後定義下面搜索需要的結構。
DIR* dir_info; //目錄指針
struct dirent* dir_entry; //目錄項信息指針
//打開一個待掃描的目錄
dir_info = opendir("./plugins");
if( dir_info )
{
//打開目錄成功
while ( (dir_entry = readdir(dir_info)) != NULL)
{
//忽略這兩個特殊項目
if(strcmp(dir_entry->d_name, "..")==0 || strcmp(dir_entry->d_name, ".")==0)
continue;
//具體操作。。。
plugin_create( srv, dir_entry->d_name );
} // while
//使用完畢,關閉目錄指針。
closedir(dir_info);
}
可惜,我沒有找到有能夠在windows和linux通用的文件掃描函數。所以只好用宏定義不同平台的處理方案。
#ifdef __WIN32__
...
#else
...
#endif