当前位置: 技术问答>linux和unix
linux 下,使用C列出某个目录下所有的文件!
来源: 互联网 发布时间:2015-10-13
本文导语: linux 下,使用C列出某个目录下所有的文件! 例如,查找/var/doc/*.txt. 列出所有的txt文件名。 环境是Redhead linux8.自带的开发环境。 | static DIR *dir; struct dirent *entry; char *name; if (!dir) { dir...
linux 下,使用C列出某个目录下所有的文件!
例如,查找/var/doc/*.txt.
列出所有的txt文件名。
环境是Redhead linux8.自带的开发环境。
例如,查找/var/doc/*.txt.
列出所有的txt文件名。
环境是Redhead linux8.自带的开发环境。
|
static DIR *dir;
struct dirent *entry;
char *name;
if (!dir) {
dir = opendir("/proc");
if(!dir)
bb_error_msg_and_die("Can't open /proc");
}
for(;;) {
if((entry = readdir(dir)) == NULL) {
closedir(dir);
dir = 0;
return 0;
}
name = entry->d_name;
}
struct dirent *entry;
char *name;
if (!dir) {
dir = opendir("/proc");
if(!dir)
bb_error_msg_and_die("Can't open /proc");
}
for(;;) {
if((entry = readdir(dir)) == NULL) {
closedir(dir);
dir = 0;
return 0;
}
name = entry->d_name;
}
|
struct dirent *dp;
do {
errno = 0;
if ((dp = readdir(dirp)) != NULL) {
if(strncmp(dp->d_name, ".", 1) == 0 || strncmp(dp->d_name, "..", 2)
== 0)
continue;
else
{
strcpy(pro_name[i], dp->d_name);
strcat(pro_name[i], "&");
printf("%i:%sn", i, pro_name[i]);
i++;
}
}
} while (dp != NULL);
====放到数组里后自己再进行比较判断。
do {
errno = 0;
if ((dp = readdir(dirp)) != NULL) {
if(strncmp(dp->d_name, ".", 1) == 0 || strncmp(dp->d_name, "..", 2)
== 0)
continue;
else
{
strcpy(pro_name[i], dp->d_name);
strcat(pro_name[i], "&");
printf("%i:%sn", i, pro_name[i]);
i++;
}
}
} while (dp != NULL);
====放到数组里后自己再进行比较判断。