一种跨平台的C++遍历目录的方法
参考了网络上各路大神的实现方法。主要使用了io.h库
- 
#include <iostream>
 
- 
#include <cstring>
 
- 
#include <io.h>
 
- 
using namespace std;
 
- 
void visitDir(const char* dir)
 
- 
{
 
- 
        char dirNew[100];
 
- 
        strcpy(dirNew, dir);
 
- 
        strcat(dirNew, "\\*.docx");    // 在目录后面加上"\\*.*"进行第一次搜索
 
- 
 
 
- 
        intptr_t handle;
 
- 
        _finddata_t findData;
 
- 
 
 
- 
        handle = _findfirst(dirNew, &findData);
 
- 
        if (handle == -1)// 检查是否成功
 
- 
        {
 
- 
                datafile.close();
 
- 
                return;
 
- 
        }
 
- 
        do
 
- 
        {
 
- 
                if (findData.attrib & _A_SUBDIR)
 
- 
                {
 
- 
                        if(strcmp(findData.name, ".") == 0 || strcmp(findData.name, "..") == 0)
 
- 
                                continue;
 
- 
                        cout << findData.name << "\t<dir>\n";// 在目录后面加上"\\"和搜索到的目录名进行下一次搜索
 
- 
                strcpy(dirNew, dir);
 
- 
                strcat(dirNew, "\\");
 
- 
                strcat(dirNew, findData.name);
 
- 
 
 
- 
                visitDir(dirNew);
 
- 
                }
 
- 
        else
 
- 
		cout << findData.name << "\t" << findData.size << " bytes.\n";
 
- 
	}while (_findnext(handle, &findData) == 0);
 
- 
        _findclose(handle);
 
- 
}
 
- 
int main()
 
- 
{
 
- 
	char dir[100];
 
- 
	cout<<"Enter a directory:";
 
- 
	cin.getline(dir,100);
 
- 
	visitDir(dir);
 
- 
	return 0;
 
- 
}
 
												
											一种跨平台的C++遍历目录的方法的更多相关文章
- 在Linux下和Windows下遍历目录的方法及如何达成一致性操作
		
最近因为测试目的需要遍历一个目录下面的所有文件进行操作,主要是读每个文件的内容,只要知道文件名就OK了.在Java中直接用File类就可以搞定,因为Java中使用了组合模式,使得客户端对单个文件和文件 ...
 - lua在linxu和windows系统下的遍历目录的方法
		
在windows下遍历目录使用lfs库:例如遍历整个目录下的所有文件 local lfs = require "lfs" function findPathName(path) ...
 - python里两种遍历目录的方法
		
os.walk 函数声明:os.walk(top,topdown=True,onerror=None) (1)参数top表示需要遍历的顶级目录的路径. (2)参数topdown的默认值是“True”表 ...
 - python遍历目录的方法 walk listdir
		
这篇文章里描述了这些情况: https://www.cnblogs.com/jiaxin359/p/7324077.html 不用递归的时候,用 listdir 需要递归的时候,用walk
 - PHP遍历目录四种方法
		
学习SPL的时候,遇到了DirectoryIterator这个目录类,谢了一下遍历目录的方法.于是总结一下遍历目录的四种写法 如下: <?php /* * 方法一:利用SPL的目录类,这个很简单 ...
 - Java-File类获取目录下文件名-遍历目录file.listFiles
		
package com.hxzy.IOSer;import java.io.*;/*File 类获取功能 * List * ListFile * */public class Demo06 { pub ...
 - java基础29 迭代器 listIterator() 及各种遍历集合的方法
		
listIterator() 迭代器包含了 Iterator() 迭代器中的所有方法. 1.ListIterator的常用方法 hasPrevious() :判断是否还有上一个元素,有则返回true ...
 - C++遍历目录,并把目录里超过7天的文件删除(跨平台windows&linux)
		
C++遍历目录,并把目录里超过7天的文件删除,适用于项目里删除过期的日志,或者视频文件. 在windows和linux下测试通过. windows测试结果: linux测试结果: 源码: #inclu ...
 - ZH奶酪:PHP遍历目录/文件的3种方法
		
其实PHP中内建函数scandir()就可以返回目录下全部文件和目录了... ========================== 1.使用$obj = dir($dir)返回目录对象$obj,然后使 ...
 
随机推荐
- iOS中的应用启动原理
			
iOS中的应用启动原理 来源: http://m.blog.csdn.net/article/details?id=50530090 http://m.warting.com/program/2016 ...
 - iOS定时器-- NSTimer 和CADisplaylink
			
iOS定时器-- NSTimer 和CADisplaylink 一.iOS中有两种不同的定时器: 1. NSTimer(时间间隔可以任意设定,最小0.1ms)// If seconds is les ...
 - 微软提供的Office在线预览地址
			
https://products.office.com/zh-CN/office-online/view-office-documents-online
 - Python 多客户端
			
服务端代码 #引入socketserver模块 import socketserver #定义处理类必须继承BaseRequestHandler类 class my_server(socketserv ...
 - Swiper2和Swiper3区别详解与兼容IE8/IE9
			
最近项目一些网站项目想到用Swiper3来制作响应式,但是发现IE9都不兼容, 而swiper2版本又少一个breakpoints参数 做响应式脚本非常不方便,于是想到新版的浏览器用3 ,iE9和以 ...
 - C++切勿混用带符号类型和无符号类型
			
如果表达式里既有带符号类型又有无符号类型,当带符号类型取值为负时会出现异常结果. 因为带符号数会自动转化为无符号数. 例如 a*b,a=-1, b=1,a是int,b是unsigned int,如果在 ...
 - ACM 2003~2005
			
ACM 2003 求实数的绝对值 import java.util.Scanner; public class Lengxc { public static void main(String[] ar ...
 - 转载:CSS的组成,三种样式(内联式,嵌入式,外部式),优先级
			
(仅供自己备份) 原文地址:http://blog.csdn.net/chq11106004389/article/details/50515717 CSS的组成 选择符/选择器+声明(属性+值) 选 ...
 - mfc和qt的区别
			
注:引用来源 http://wenda.chinabaike.com/b/30934/2013/1208/707410.html QT使用的编译器是MinGW,即Linux下的GCC移植到window ...
 - C语言实例解析精粹学习笔记——18
			
<C语言实例解析精粹>中编译环境采用的是Turbo C 2.0.但是这个编译器年代久远,较新的编译器对书中的某些例子支持不好,在学习的时候同时做一些笔记. 实例18:将一个无符号整数转换为 ...