当前位置: 技术问答>linux和unix
求教关于FindFirstFile!
来源: 互联网 发布时间:2015-10-04
本文导语: 在windows下编程可以调用windows的API函数,比如说要查找指定目录下的文件要调用API函数:FindFirstFile 现在要在linux下编程,不能直接调用这个函数吧?那要实现这个函数的功能,如何实现呢?就是说如何在linux下面实现FindFirstFil...
在windows下编程可以调用windows的API函数,比如说要查找指定目录下的文件要调用API函数:FindFirstFile
现在要在linux下编程,不能直接调用这个函数吧?那要实现这个函数的功能,如何实现呢?就是说如何在linux下面实现FindFirstFile这个函数的功能呢?请高手指教!
|
看看这个例子,你就明白了
int RetriveDIR(char *strDirPath)
{
DIR *dirp;
struct dirent *direntp;
if( (dirp = opendir(strDirPath)) == NULL)
{
printf("Open Directory Error:n");
return 0;
}
while( (direntp = readdir(dirp) ) !=NULL)
{
if( !strcmp(direntp->d_name, ".") || !strcmp(direntp->d_name, "..") )
continue;
struct stat statbuf;
char filename[100];
memset(filename, '', 100);
strcpy(filename, strDirPath);
strcat(filename, "/");
strcat(filename, direntp->d_name);
if(stat(filename, &statbuf) == -1)
{
printf("Get stat on %s Error:%sn", direntp->d_name,strerror(errno));
return 0;
}
if(S_ISDIR(statbuf.st_mode))
{
char dirpath[100];
memset(dirpath, '', 100);
strcpy(dirpath, strDirPath);
strcat(dirpath, "/");
strcat(dirpath, direntp->d_name);
RetriveDIR(dirpath);
}
else
{
strcpy(m_fileContainer[ii++],filename);
//printf("%sn",m_fileContainer[ii-1]);
}
}
return 1;
}
int RetriveDIR(char *strDirPath)
{
DIR *dirp;
struct dirent *direntp;
if( (dirp = opendir(strDirPath)) == NULL)
{
printf("Open Directory Error:n");
return 0;
}
while( (direntp = readdir(dirp) ) !=NULL)
{
if( !strcmp(direntp->d_name, ".") || !strcmp(direntp->d_name, "..") )
continue;
struct stat statbuf;
char filename[100];
memset(filename, '', 100);
strcpy(filename, strDirPath);
strcat(filename, "/");
strcat(filename, direntp->d_name);
if(stat(filename, &statbuf) == -1)
{
printf("Get stat on %s Error:%sn", direntp->d_name,strerror(errno));
return 0;
}
if(S_ISDIR(statbuf.st_mode))
{
char dirpath[100];
memset(dirpath, '', 100);
strcpy(dirpath, strDirPath);
strcat(dirpath, "/");
strcat(dirpath, direntp->d_name);
RetriveDIR(dirpath);
}
else
{
strcpy(m_fileContainer[ii++],filename);
//printf("%sn",m_fileContainer[ii-1]);
}
}
return 1;
}
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。