DIR dirp对目录的操作
来源:互联网 发布:js拖拽事件canvas 编辑:程序博客网 时间:2024/06/01 20:09
DIR函数以及dirp函数
DIR* opendir(const char*pathname),即打开文件目录,返回的就是指向DIR结构体的指针。
返回该指针以后,就可以被以下函数来使用了,
struct dirent *readdir(DIR *dp)
int closedir(DIR *dp)
long telldir(DIR *dp)
要知道dirent结构体是什么样的:
struct dirent
{
long d_no;//索引节点号
...
char d_name;//文件名
}
通过readdir 函数读取的文件名存放到dirent结构体的d_name成员中,
而函数stat
int stat(const char *filename,struct stat *buf);的作用就是获取d_name的文件详细信息,存储在stat结构体中。
stat结构体如下
struct stat{
time_t st_atime;//最后一次访问该文件的时间
time_t st_mtime;//最后一次修改该文件的时间
time_t st_ctime;//最后一次改变该文件状态的时间
...
}
获取一个文件信息的步骤如下
opendir打开目录,返回指向该目录下所有文件的dirent结构体d。
接着,遍历d,获取每个文件的详细信息,存储在stat结构体e中。
实战例子
int OpenDir(vector<string> & fileNameVec,const string &tmp_path)
{
DIR* dp;
struct dirent* dirp;
if((dp = opendir(tmp_path.c_str())) == NULL)
{
perror( "Open dir error" );
return -1;
}
while ((dirp = readdir(dp)) != NULL)
{
if (strcmp( dirp->d_name, ".") == 0 || strcmp(dirp->d_name,"..") == 0)
{
continue;
}
if (strstr( dirp->d_name,.DT) == NULL)
{
continue;
}
string tmpfileName(dirp->d_name);
fileNameVec.push_back(tmpfileName);
if (fileNameVec.size()>10) //一次传输10个
{
closedir(dp);
return 1;
}
}
closedir(dp);
return 1;
}
- DIR dirp对目录的操作
- 目录操作 递归打印目录 DIR drent
- python对目录的操作
- PHP 对目录的操作
- linux对目录的操作
- 对目录的操作指令
- matlab对文件目录路径的操作
- c++中对目录的操作示例
- matlab对文件目录路径的操作
- Python对目录、文件的操作
- matlab对文件目录路径的操作
- matlab对文件目录路径的操作
- Matlab对文件目录路径的操作
- matlab对文件目录路径的操作
- Python对文件和目录的操作
- matlab对文件,目录的操作
- matlab对文件目录路径的操作
- Linux下目录文件的操作(opendir,readdir,closedir) 以及DIR,dirent,stat等结构体详解
- mv命令
- TCP-IP 概述
- 工厂方法模式(factory method)c++版本
- 《辛雷学习方法》读书笔记——前言
- Educational Codeforces Round 1 Tutorial
- DIR dirp对目录的操作
- HibernateException: Found shared references to a collection 解决办法
- 常用学习资源的网址汇总
- JS闭包可被利用的常见场景
- uboot笔记:uboot命令分析+实现
- 编译NVCaffe0.16出错-不支持gcc4.8.3-已安装4.8.5
- 内容提供者(ContentProvider)和内容观察者(ContentObserver)的使用(以应用锁为例)
- vue v-bind:class中属性使用引号
- delphi实现全局快捷键的功能