`
icarusliu
  • 浏览: 235486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言目录操作

阅读更多

1. 在Linux下要判断一个路径是否是目录,及遍历这个路径下的所有文件,可以使用以下方式:

    主演使用的函数是:

    int lstat(const char *, struct stat):取得一个路径的信息,可以从这个信息中得到是否及目录还是文件。其他属性参考man

    S_ISDIR():判断是否是目录,传入参数是stat.st_mode

    DIR * opendir(const char *):打开指定路径

    struct dirent readdir(DIR *):打开指定目录的子路径,可以反复调用本函数来得到制定目录的所有子路径信息。当执行到最后一个目录或者文件的时候,将返回NULL

 

    综上,遍历一个目录下的所有文件的代码如下所示:

 

#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>

int main(void)
{
	struct stat fStat;
	DIR *dir;	
	struct dirent *fileInfo = NULL;	

	if (-1 == lstat("test.txt", &fStat))
	{
		perror("");
		return -1;
	}
	
	if (S_ISDIR(fStat.st_mode))
	{
		printf("INFO: The path is a directory!\n");
	}
	else
	{
		printf("INFO: The path is a file!\n");
		return 1;
	}

	//If it is a dir, print the files' names in this directory. 
	dir = opendir("test.txt");
	if (NULL == dir)
	{
		perror("");
		return -1;
	}

	fileInfo = readdir(dir);
	while (NULL != fileInfo)
	{
		printf("INFO: File name is %s!\n", fileInfo->d_name);
		fileInfo = readdir(dir);	
	}

	return 1;
}
 

 

分享到:
评论

相关推荐

    C语言目录操作1

    本篇文章主要探讨了四个关键的C语言目录操作:获取当前工作目录、切换工作目录、创建和删除目录以及获取目录中的文件列表。 首先,获取当前工作目录是通过`getcwd`函数实现的。该函数接受两个参数,一个用于存储...

    C语言目录操作基础:使用`mkdir`和`rmdir`管理目录

    其中,创建和删除目录是文件系统操作中常见的需求。C标准库提供了mkdir和rmdir函数,用于在文件系统中创建和删除目录。本文将详细介绍这两个函数的使用方法、注意事项以及实际编程中的应用。 mkdir和rmdir是C语言中...

    C语言目录递归经典代码Recurse-Directories-in-C

    在C语言中,我们主要依赖于`&lt;dirent.h&gt;`头文件提供的`opendir()`、`readdir()`和`closedir()`等函数来操作目录。以下是一个简单的目录递归实现的步骤: 1. **打开目录**:使用`opendir()`函数打开一个目录,该函数...

    C语言文件操作思维导图及实例代码

    在C语言中,文件操作是程序设计中的一个重要组成部分,它允许程序员将数据持久化存储到磁盘上,以便后续访问或与其他程序共享。本资源" C语言文件操作思维导图及实例代码 "提供了关于C语言文件操作的清晰概览和实践...

    C语言文件操作(文件操作)

    在C语言中,文件操作是程序与外部存储设备交互的重要方式。通过文件操作,我们可以将数据持久化存储,以便在程序运行的不同阶段或不同程序之间共享。本文将深入探讨C语言中的文件操作,包括文件的打开、读写、关闭...

    C语言实现操作系统的文件系统操作

    切换目录、创建文件、删除文件、写入内容、重写内容、创建目录、删除目录、显示当前目录下所有子目录和子文件、查找文本内容、复制文件、复制子目录和文件、导入文件、导出文件、显示文件内容、保存磁盘数据、帮助...

    C语言在操作系统中的应用一例.pdf

    文件的读写、目录的操作、权限的管理等都可以利用C语言来实现。这为操作系统提供了稳定且高效的文件管理能力。 6. 操作系统的启动引导:计算机启动时,系统会首先运行引导加载程序。C语言可以用来编写引导加载程序...

    C语言目录和文件操作补充1

    【C语言目录和文件操作补充】 在C语言中,对文件和目录的操作是程序设计中的重要组成部分。本文将深入探讨两个关键的库函数——`access`和`stat`,它们分别用于判断文件或目录的存取权限以及获取文件或目录的状态...

    C语言文件操作及函数大全

    C语言文件操作及函数大全 2.文件操作函数: (1)文件打开函数fopen fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen("文件名","使用文件方式"); 其中,“文件指针名”必须是被说明为FILE 类型的...

    明解C语言(带目录)

    9. 文件操作:C语言提供了标准库函数来处理文件的输入输出操作,允许程序能够读取或写入文件,实现数据持久化存储。 10. 预处理指令:C语言支持宏定义(#define)、文件包含(#include)、条件编译(#ifdef、#...

    操作系统c语言模拟文件管理系统

    在本项目中,我们通过C语言实现了一个基础的操作系统文件管理系统,这为我们提供了理解和学习操作系统工作原理的一个实践平台。 文件管理系统是操作系统的重要组件,它的主要任务包括文件的创建、删除、打开、关闭...

    谭浩强C语言Word版(含目录)

    书中的目录通常包括以下部分: 1. **C语言概述**:介绍C语言的历史、特点和应用领域,引导读者对C语言有一个初步认识。 2. **基本数据类型、变量和常量**:讲解C语言中的基本数据类型(整型、浮点型、字符型等),...

    Linux下C语言_文件操作

    在Linux环境下使用C语言进行文件操作,主要依赖于一系列的系统调用(system call),这些系统调用为程序提供了与文件系统交互的能力。在C语言中,文件操作相关的函数主要有:open()、close()、read()、write()等。...

    redis实时数据库C语言操作程序示例

    `adapters` 目录可能包含了不同网络适配器的代码,比如异步操作的支持。`async.h` 文件则提供了异步操作的接口,允许在不阻塞主线程的情况下执行Redis命令,这对于需要快速响应的应用来说非常关键。 `win32fixes.h`...

    c语言编写的关于文件目录集文件操作的

    根据提供的文件标题、描述、标签以及部分内容,我们可以总结出该段代码主要涉及的是C语言中的文件与目录操作。下面将详细解析这些知识点。 ### 文件目录管理及文件的新建及删除和修改 #### 1. 文件操作 在C语言中...

    C语言编程操作GPIO

    C语言由于其底层特性和高效性,常被用于编写这类操作的程序。本主题将深入探讨如何使用C语言在Linux环境下操作GPIO。 首先,我们需要了解Linux对GPIO的支持。在Linux中,GPIO被抽象为设备节点,位于`/sys/class/...

    linux基础学习+进程+信号+线程+线程锁+进程锁+信号量+网络socket套接字编程

    ①Linux基础学习:文件类命令、压缩命令、进程命令、服务器搭建、用户管理、vim学习、gcc/g++编译、linux静态库/动态库、gdb学习、makefile基础学习、C语言文件操作类函数、C语言目录操作函数等; ②linux系统编程...

    操作系统原理算法C语言实现

    3. 文件系统:文件系统管理着磁盘上的数据,包括文件的创建、删除、读写操作以及目录结构的管理。C语言可以实现简单的文件操作函数,如open、read、write、close等,也可以实现FAT或EXT系列的文件系统模拟。 4. ...

    在Linux系统下编写C语言程序完成删除非空目录操作

    在Linux系统下编写C语言程序完成删除非空目录操作主要还是模拟系统指令rmkdir,要想删除目录文件首先得先删除目录文件里面的文件,使文件清空才能删除目录。本程序才用递归来不断打开目录文件清空目录下的文件并返回...

    明解C语言PDF带目录版

    读者将学会如何用C语言进行基本的输入输出操作,例如使用`printf`和`scanf`函数。 接着,书中详细阐述了流程控制语句,如条件语句(if-else)、循环(for、while、do-while)和选择结构(switch-case)。这些是控制...

Global site tag (gtag.js) - Google Analytics