c/c++ 获取文件夹或目录下的文件
头文件:#include <io.h>
文件结构体:
struct _finddata_t {
unsigned attrib; //文件属性,_A_ARCH(存档)、_A_HIDDEN(隐藏)、_A_NORMAL(正常)、_A_RDONLY(只读)、 _A_SUBDIR(文件夹)、_A_SYSTEM(系统)。
time_t time_creat; // 文件创建时间
time_t time_access; //最后一次访问文件的时间
time_t time_write; //最后一次修改文件的时间
_fsize_t size; //文件大小
char name[260]; //文件名
};
主体函数:
(1)long _findfirst(const char *, struct _finddata_t *);
第一个参数:待查找文件名或路径名(如:“*.*”,查找当前路径下的所哟文件;“*.cpp”,查找.cpp文件);
第二个参数:_finddata_t 结构指针;
返回值:若查找成功返回文件句柄,若失败返回-1。
(2)int _findnext(long, struct _finddata_t *);
第一个参数:文件句柄;
第二个参数:_finddata_t 结构指针;
返回值:若查找成功返回0,若失败返回-1。
(3)int _findclose(long);
第一个参数:文件句柄;
返回值:若成功返回0,若失败返回-1。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <io.h> 2 #include <iostream> 3 4 using namespace std; 5 6 int main() 7 { 8 _finddata_t file; 9 int k; 10 long HANDLE; 11 k = HANDLE = _findfirst( "*.*", &file ); 12 while( k != -1 ) 13 { 14 cout << file.name << endl; 15 k = _findnext( HANDLE, &file ); 16 } 17 _findclose( HANDLE ); 18 19 return 0; 20 }