unix环境下标准C实现的遍历某个文件夹下面所有文件(
转自CSDN)
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <dirent.h>
int testdir(char *path)
{
struct stat buf;
if(lstat(path,&buf)<0)
{
return 0;
}
if(S_ISDIR(buf.st_mode))
{
return 1; //directory
}
return 0;
}
int directory(char *path)
{
DIR *db;
char filename[128];
struct dirent *p;
db=opendir(path);
if(db==NULL)return 0;
memset(filename,0,128);
while ((p=readdir(db)))
{
if((strcmp(p->d_name,".")==0)||(strcmp(p->d_name,"..")==0))
continue;
else
{
sprintf(filename,"%s/%s",path,p->d_name);
if(testdir(filename))
{
directory(filename);
}
else {
printf("%s\n",filename);
}
}
memset(filename,0,64);
}
closedir(db);
return 0;
}
int main(int argc,char **argv)
{
char *path="./"; //要遍历的目录
if(access(path,F_OK)==0&&testdir(path))
{
printf("is directory\n");
directory(path);
}
else printf("%s not exist\n",path);
}
分享到:
相关推荐
"获取指定目录下的所有文件路径及文件名"这一主题是其中的核心部分,它涉及到文件系统接口的使用,以及如何遍历目录结构来收集信息。在这个场景下,我们将深入探讨以下几个关键知识点: 1. **文件路径与文件名**: ...
在日常的计算机操作中,有时我们需要统计某个文件夹下包含的文件数量,这对于管理大量数据、备份文件或者优化存储空间非常有用。标题“查询文件夹文件数量”和描述中的重复内容都指向了这一核心需求。在这个场景下,...
用户只需输入文件或文件夹的路径,程序就会自动遍历这个路径下所有的文件和子文件夹。路径可以是绝对路径,也可以是相对路径,根据用户的实际需求选择。例如,如果用户想要查询桌面的一个文件夹,路径可能是"C:\...
这个过程涉及到文件系统的遍历,一种系统性的访问和处理硬盘上所有文件和文件夹的方法。以下是对这个主题的详细解释: 1. 文件系统遍历: 文件系统遍历是指程序按照一定的顺序访问文件系统中的每一个目录和文件。...
- 使用`for`循环遍历文件夹中的所有文件: ```bash for file in *.txt; do echo "$file"; done ``` - 利用管道和`grep`找出包含特定字符串的行: ```bash cat log.txt | grep "error" ``` 8. **学习资源** ...
在C语言中,检查挂载点通常涉及读取"/etc/fstab"文件(在Linux系统中),这是一个包含系统中所有预定挂载点及其对应设备的配置文件,或者使用系统调用如`statfs`来获取文件系统信息。代码可能包括解析这个文件,或者...
例如,遍历文件夹中的所有文件,或重复执行某个命令直到结果满足条件。 4. **函数**:shell脚本中的函数可以封装常用操作,提高代码复用性。例如,定义一个函数来实现简单的文本替换。 5. **文件和目录操作**:...
### Unix编程常见问题解答知识点概览 #### 1. Process Control 进程控制 ##### 1.1 Creating new processes: fork() **1.1.1 What does fork() do? fork函数干什么?** - **功能**: `fork()` 函数用于创建一个新...
* MinGW编译器:MinGW是指用来生成纯粹的Win32可执行文件的编译环境,它是以GNU为基础的开发C/C++项目的工具集,能够提供C/C++所需要的头文件和库文件。 * 浏览功能:浏览功能可以从多个角度快速查看并定位到程序中...
例如,遍历文件夹中的所有文件可以使用 `for file in *; do ... done`。 #### 四、Shell脚本变量 1. **位置参数**: 在脚本中通过 `$1`, `$2`, `$3` 等来引用传入脚本的参数。其中 `$#` 表示参数的数量。 2. **...
例如,遍历文件夹中的所有文件,或直到某个条件为真才停止。 5. **函数**:Shell脚本可以定义自己的函数,将一组相关操作封装起来,提高代码的可重用性。 6. **文件和目录操作**:Shell提供了丰富的命令来处理文件...
3. **循环结构**:`for`或`while`循环用于重复执行某些任务,如遍历文件夹中的文件进行处理,或者在安装过程中反复检查某个状态。 4. **函数**:脚本可能定义了一些函数,将复杂的任务分解为可重用的模块。例如,一...