C++ 遍历所有文件和文件夹,建立文件夹
2015-08-15 11:14
447 查看
首先介绍一下”DWORD”
在win32中有这样的定义:
表示一个32位无符号整型数,或用来表示段地址和段地址的偏移量;Windows下经常用来保存地址(或者存放指针).
C++ 遍历所有文件和文件夹, 包含头文件
如果想遍历所有文件和文件夹,以及所有子目录、子文件,则需要用SetCurrentDirectory设置当前的下一级目录,然后递归调用
GetCurrentDirectory和SetCurrentDirectory是获取和设置的线程的当前工作路径,而不是线程所在路径。下面的代码是源文件所在路径下有一个文件为write.txt,而上一级路径下没有这个文件,来说明这两个函数的功能。
用到的函数:access和mkdir,分别包含头文件io.h和direct.h如果想深入了解就去查msdn。
在win32中有这样的定义:
#define DWORD unsigned long
表示一个32位无符号整型数,或用来表示段地址和段地址的偏移量;Windows下经常用来保存地址(或者存放指针).
C++ 遍历所有文件和文件夹, 包含头文件
#include <windows.h>
WIN32_FIND_DATA fd; HANDLE hFind = ::FindFirstFile("C:\\*.*", &fd); if(hFind != INVALID_HANDLE_VALUE) { do { printf(fd.cFileName); } while(::FindNextFile(hFind, &fd)); ::FindClose(hFind); }
如果想遍历所有文件和文件夹,以及所有子目录、子文件,则需要用SetCurrentDirectory设置当前的下一级目录,然后递归调用
GetCurrentDirectory和SetCurrentDirectory是获取和设置的线程的当前工作路径,而不是线程所在路径。下面的代码是源文件所在路径下有一个文件为write.txt,而上一级路径下没有这个文件,来说明这两个函数的功能。
#ifndef _TEST_H #include <iostream> #include <windows.h> #include <string> #include <stdlib.h> using namespace std; int main() { char buf[1000]; int i=1000; GetCurrentDirectory(1000,buf); //得到当前工作路径 string a; a.assign(buf); cout<<a<<endl; a.append("\\..\\"); FILE *pFile; pFile = fopen("write.txt","r"); if (pFile == NULL) cout << "open failure" << endl; fclose(pFile); int test = SetCurrentDirectory(a.c_str()); //设置当前路径值 if (test == 0 ) cout << "execute failed\n"; GetCurrentDirectory(1000,buf); cout << buf << endl; pFile = fopen("write.txt","r"); if (pFile == NULL) cout << "open failure" << endl; else fclose(pFile); return 0; } #endif //_TEST_H
用到的函数:access和mkdir,分别包含头文件io.h和direct.h如果想深入了解就去查msdn。
char *fileName=".\\1\\2\\3\\a.txt",*tag; for(tag=fileName;*tag;tag++) { if (*tag=='\\') { char buf[1000],path[1000]; strcpy(buf,fileName); buf[strlen(fileName)-strlen(tag)+1]=NULL; strcpy(path,buf); if (access(path,6)==-1) { mkdir(path); } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 文件遍历排序函数
- Lua 学习笔记之C API 遍历 Table实现代码
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C#中遍历Hashtable的4种方法
- C++联合体转换成C#结构的实现方法
- Erlang中遍历取出某个位置的最大值代码
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例