编译目录下面的所有的文件
来源:互联网 发布:淘宝网民族风 连衣裙 编辑:程序博客网 时间:2024/05/17 22:45
C/C++方式
void getFiles(std::string &path, std::vector<std::string> &files, std::string fileFileters)fileFileters是过滤符号
{
//文件句柄
intptr_t hFile = 0;(这里要用 intptr_t,不能采用long ,否者可能出现程序崩溃)
//文件信息
struct _finddata_t fileinfo;
std::string p;
if ((hFile = _findfirst(p.assign(path).append(fileFileters).c_str(), &fileinfo)) != -1)
{
do
{
//如果是目录,迭代之
//如果不是,加入列表
if ((fileinfo.attrib & _A_SUBDIR))
{
if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
getFiles(p.assign(path).append("\\").append(fileinfo.name), files, fileType);
}
else
{
files.push_back(p.assign(path).append("\\").append(fileinfo.name));
}
}while (_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
{
//文件句柄
intptr_t hFile = 0;(这里要用 intptr_t,不能采用long ,否者可能出现程序崩溃)
//文件信息
struct _finddata_t fileinfo;
std::string p;
if ((hFile = _findfirst(p.assign(path).append(fileFileters).c_str(), &fileinfo)) != -1)
{
do
{
//如果是目录,迭代之
//如果不是,加入列表
if ((fileinfo.attrib & _A_SUBDIR))
{
if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
getFiles(p.assign(path).append("\\").append(fileinfo.name), files, fileType);
}
else
{
files.push_back(p.assign(path).append("\\").append(fileinfo.name));
}
}while (_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
一、这两个函数均在io.h里面。
二、首先了解一下一个文件结构体:
struct _finddata_t {
};
time_t,其实就是long
而_fsize_t,就是unsigned long
现在来解释一下结构体的数据成员吧。
attrib,就是所查找文件的属性:_A_ARCH(存档)、_A_HIDDEN(隐藏)、_A_NORMAL(正常)、_A_RDONLY(只读)、 _A_SUBDIR(文件夹)、_A_SYSTEM(系统)。
time_create、time_access和time_write分别是创建文件的时间、最后一次访问文件的时间和文件最后被修改的时间。
size:文件大小
name:文件名。
三、用 _findfirst 和 _findnext 查找文件
1、_findfirst函数:long _findfirst(const char *, struct _finddata_t *);
第一个参数为文件名,可以用"*.*"来查找所有文件,也可以用"*.cpp"来查找.cpp文件。第二个参数是_finddata_t结构体指针。若查找成功,返回文件句柄,若失败,返回-1。
2、_findnext函数:int _findnext(long, struct _finddata_t *);
第一个参数为文件句柄,第二个参数同样为_finddata_t结构体指针。若查找成功,返回0,失败返回-1。
3、_findclose()函数:int _findclose(long);
只有一个参数,文件句柄。若关闭成功返回0,失败返回-1。
matlab读取目录下面的文件
files=dir('*.txt');
totalfile=size(files,1);
totalfile=size(files,1);
0 0
- 编译目录下面的所有的文件
- 取出目录下面所有.java的文件
- 统计目录下面的文件所有单词
- 算法:递归列出一个目录下面的所有文件
- java删除一个目录下面的所有文件
- java删除一个目录下面的所有文件
- java删除一个目录下面的所有文件
- unix 删除文件夹以及该目录下面的所有文件
- php 怎样读取指定目录下面的所有文件?
- unix下面目录的详细操作(包括实现给定目录遍历下面所有文件)
- 【BASH】运行目录下面的所有脚本
- 删除一个目录下面的所有可执行文件
- Android 删除目录下的所有文件以及文件夹及遍历文件夹下面的文件
- find删除目录下面的所有文件 按照创建时间保留部分文件
- Linux下面删除指定目录下非指定文件的所有文件
- php将某个目录下面的所有文件罗列出来的方法
- makefile 自动编译同一个目录下的所有文件
- makefile 自动编译同一个目录下的所有文件
- 现有杂乱无序的1-20二十个数,这二十个数为:1,18,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12,5,20,试依次求出相邻四个数之和的最大和最小值
- Linux 目录结构及文件基本操作
- HTTP状态码
- 方法重写和方法重载
- Android四大组件之broadcastReceiver
- 编译目录下面的所有的文件
- 判断整形数组是按升序还是降序排列的,采用递归的方法
- TabLayout实现仿今日头条顶部tab导航效果
- kafka笔记
- StringIndexOutOfBoundsException
- 简单完美解决PullToRefreshLayout中PullableListView嵌套ViewPager时滑动冲突的问题
- MyEclipse 6.5 Blue Edition - Milestone 1版本获取注册码(2)
- 计算机原理笔记1
- SQL基础--基础语句和运算