当前位置: 技术问答>linux和unix
(新手问题)linux目录问题
来源: 互联网 发布时间:2016-07-04
本文导语: 我要查找目录/home/riverdream/下的所有的*.CPP文件 int main(int argc, char *argv[]) { char str[] = "/home/riverdream/"; DIR* pDir = NULL; struct dirent* ent = NULL; pDir = opendir(str); if (NULL == pDir) ...
我要查找目录/home/riverdream/下的所有的*.CPP文件
int main(int argc, char *argv[])
{
char str[] = "/home/riverdream/";
DIR* pDir = NULL;
struct dirent* ent = NULL;
pDir = opendir(str);
if (NULL == pDir)
{
printf("Source folder not exists!n");
return 1;
}
while (NULL != (ent=readdir(pDir)))
{
if(ent->d_name[0]!='.')
{
if (ent->d_type==8)
printf("%sn", ent->d_name);
}
}
closedir(pDir);
pDir = NULL;
ent = NULL;
return 1;
}
那个目录应该怎么写???
char str[] = "/home/riverdream/*.cpp";这样不行@!谢谢回答、、、
int main(int argc, char *argv[])
{
char str[] = "/home/riverdream/";
DIR* pDir = NULL;
struct dirent* ent = NULL;
pDir = opendir(str);
if (NULL == pDir)
{
printf("Source folder not exists!n");
return 1;
}
while (NULL != (ent=readdir(pDir)))
{
if(ent->d_name[0]!='.')
{
if (ent->d_type==8)
printf("%sn", ent->d_name);
}
}
closedir(pDir);
pDir = NULL;
ent = NULL;
return 1;
}
那个目录应该怎么写???
char str[] = "/home/riverdream/*.cpp";这样不行@!谢谢回答、、、
|
#include
#include
#include
#include
#include
void filter(char *src, char *dest)
{
int src_len = strlen(src);
int dest_len = strlen(dest);
if(! strncmp((src+src_len-dest_len), dest, dest_len))
printf("%s n", src);
}
int main(int argc, char *argv[])
{
char str[] = "/work/tmp";
DIR* pDir = NULL;
struct dirent* ent = NULL;
pDir = opendir(str);
if (NULL == pDir)
{
printf("Source folder not exists!n");
return 1;
}
while (NULL != (ent=readdir(pDir)))
{
if(ent->d_name[0]!='.')
{
if (ent->d_type==8)
filter(ent->d_name, ".cpp");
}
}
closedir(pDir);
pDir = NULL;
ent = NULL;
return 1;
}
|
*.cpp又不是目录....... open sha ?
可以在遍历目录时过滤
可以在遍历目录时过滤
|
字符串比较:最后四个字符