c++ 读取所有图片
2015-10-24 19:49
477 查看
copyright by Jun Yang, SUN YAT-SEN UNIVERSITY
//FileList.h //////////////////////////////////////////////////// //获取目录路径下面所有文件的内容 //适用于linux和windows系统 //////////////////////////////////////////////////// #ifndef _FILELIST_H_ #define _FILELIST_H_ #include <string> #include <vector> #include <iostream> using namespace std; #ifdef _WIN32 #include <Windows.h> #include <strsafe.h> #else #include <dirent.h> #endif ////////////////////////////////////////////////////////////////////////// //获取指定目录下所有文件的文件名,不包括文件夹,在GetFileFromDir中使用 //strDir: 输入,目录路径 //FileDirList: 输出,文件路径列表 //返回:空 ////////////////////////////////////////////////////////////////////////// vector<string> GetFileNameFromDir(string strDir) { vector<string> vFileDirList; #ifdef _WIN32 WIN32_FIND_DATAA ffd; //LARGE_INTEGER filesize; string szDir; //size_t length_of_arg; HANDLE hFind = INVALID_HANDLE_VALUE; DWORD dwError=0; szDir=strDir+"\\*"; hFind = FindFirstFileA(szDir.c_str(), &ffd); if (INVALID_HANDLE_VALUE == hFind) { cout<<"get file name error"<<endl; return; } do { if (!(ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { string filename=ffd.cFileName;//(const char*) string filedir=strDir+"\\"+filename; vFileDirList.push_back(filedir); } }while (FindNextFileA(hFind, &ffd) != 0); dwError = GetLastError(); if (dwError != ERROR_NO_MORE_FILES) { cout<<"FindFirstFile error"<<endl; return; } FindClose(hFind); #else DIR *dir; struct dirent *ptr; dir = opendir(strDir.c_str()); while( (ptr = readdir(dir)) != NULL) { string filename = string(ptr->d_name); if (filename == "." || filename == ".."){ continue; } string path = strDir + string("/") + filename; vFileDirList.push_back(path); } closedir(dir); sort(vFileDirList.begin(), vFileDirList.end()); #endif return vFileDirList; } #endif int main(void) { vector<string> files = GetFileNameFromDir("/Volumes/RamDisk/Caches"); for (int i = 0; i < files.size(); ++i){ cout << files[i] << endl; } return 0; }
相关文章推荐
- 第一个包含类的C++程序
- c语言链式存储实现
- C++设计模式 之 “对象创建”模式:Factory Method、Abstract Factory、Prototype、Builder
- 杭电ACM2017-字符串统计
- C++迭代器 iterator
- C++对象模型——默认构造函数的合成
- C++的几个知识点
- VC++ 在控件上写字时 字体的设置技巧
- 005--C++字符
- C++ 中的 Lambda 表达式
- 剑指offer第二十九题【最小的K个数】c++实现
- C语言 计算1!+2!+3!+4!
- 【ThinkingInC++】53、构造函数,析构函数,全局变量
- 统计1到100出现9的次数 1.0
- C++ stl vector
- 计算1-1/2+...+1/99-1/100
- 输出一个整数的每一位
- C++ switch语句写菜单,输入字符串,如何只接收首个字符
- C++ STL中的vector
- C++ this指针详解