windows API递归遍历文件夹下所有文件

1.网上有些代码有问题,改进如下

#include <stdio.h>
#include<windows.h>
#include<iostream>
#include<string>
using namespace std;
int count = 0;
void find(char * lpPath)
{
	char save_path[200];
	char szFile[MAX_PATH] = {0};
	char szFind[MAX_PATH];
	char root[MAX_PATH];

	WIN32_FIND_DATA FindFileData;
	strcpy(szFind,lpPath);

	strcat(szFind,"*.*");
	HANDLE hFind=::FindFirstFile(szFind,&FindFileData);

	if(INVALID_HANDLE_VALUE == hFind) return;
	while(TRUE)
	{
		if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
		{
			if(FindFileData.cFileName[0]!='.')
			{
				strcpy(szFile,lpPath);
				//strcat(szFile,"//");
				strcat(szFile,FindFileData.cFileName);
				strcat(szFile,"//");
				find(szFile);
			}
		}
		else
		{

			strcpy(root, lpPath);
			strcat(root,FindFileData.cFileName);
			cout << root << endl;
		}

		if(!FindNextFile(hFind,&FindFileData)) break;
	}
	FindClose(hFind);
}
void main()
{

	find("..//2003//");

}
时间: 2024-10-06 09:57:39

windows API递归遍历文件夹下所有文件的相关文章

C#遍历文件夹下所有文件

FolderForm.cs的代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Text; using System.Windows.Forms; namespace HoverTree.Hewenqi { public partial class FolderForm : Form { public FolderForm() {

OpenCV实现遍历文件夹下所有文件

OpenCV中有实现遍历文件夹下所有文件的类Directory,它里面包括3个成员函数:(1).GetListFiles:遍历指定文件夹下的所有文件,不包括指定文件夹内的文件夹:(2).GetListFolders:遍历指定文件夹下的所有文件夹,不包括指定文件夹下的文件:(3).GetListFilesR:遍历指定文件夹下的所有文件,包括指定文件夹内的文件夹. 若要使用Directory类,则需包含contrib.hpp头文件,此类的实现在contrib模块. 下面为测试代码: cv::Dire

Java遍历文件夹下所有文件并替换指定字符串

应用场景:比如有一个深层次的文件目录结构,如:javaAPI 每个文件里面都有相同的内容,而我们要统一修改为其他内容.上千个文件如果一个个修改显得太不明智. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.PrintWriter; public class Test { /** *

PHP遍历文件夹下的文件和获取到input name的值

<?php$dir = dirname(__FILE__); //要遍历的目录名字 ->当前文件所在的文件夹//$dir='D:\PHP\wamp\www\admin\hosts\admin'; //PHP遍历文件夹下所有文件 $handle=opendir($dir."."); $arr = array();while($file=readdir($handle)){  if(is_file($file)){ if ($file != "."&

遍历远程服务器某个文件夹下的文件

遍历远程文件夹下的文件,您可以考虑使用FTP的方式,具体的请参考下述代码:private string GetFileNames(string URI){WebClient wClient = new WebClient();FtpWebRequest FtpClient;Uri uri = new Uri(URI);FtpClient = (FtpWebRequest)WebRequest.Create(uri); FtpClient.Credentials.GetCredential(uri

批处理脚本遍历指定文件夹下的文件

批处理脚本 1. 遍历指定文件夹下的文件 1.1 命令解释 命令: for [参数] %%变量名 in (匹配符) do (执行的命令) 切记:每个指令之间必须以空格隔开,in 与 ( 之间有空格,do 与 ( 间也有空格,否则命令会无法成功执行 ps:本节只讲用批处理脚本执行 for 命令遍历文件夹的场景,因此以下分析每个指令意义时,不介绍其他含义 []:表示此项指令为可选 [参数]:参数取值一共有四种: /d, /r, /l, /f,加上无参数,所以一共五种场景 无参:遍历当前路径的文件夹下

java非递归检索文件夹下所有文件的代码

把开发过程比较重要的一些内容段做个珍藏,下面的内容段是关于java非递归检索文件夹下所有文件的内容,应该是对大家有所帮助. DateFormat df = DateFormat.getDateTimeInstance();LinkedList<File> folders = new LinkedList<File>();LinkedList<File> filelists = new LinkedList<File>();File dir = new Fil

利用shell脚本或者php移动某个文件夹下的文件到各自的日期组成的目录下

背景是这样的:网站一开始访问量比较小,大家就把所有的图片文件上传到一个目录下(比如是/data/images/).后来访问量大了,图片也多了,这样就影响读取效率.所以有个这样的需求,把这些个图片文件移动到多个目录下,这个目录是图片的上传日期(就是文件属性中的修改日期filemtime)组成的.比如2012-12-20的修改日期,那么现在就该放在/data/images/2012/12/20的目录下. php有很容易的操作文件的函数,可以方便完成.当然也可以利用shell脚本完成. 用shell的

CodeFolderClear 自动清理代码文件夹下无用文件的小程序及源码

最近常要用U盘拷贝代码,发现编译器生成的各种中间文件占用了大量的空间,手工删除起来费时费力,所以就萌生了写一个小工具搞定这一切都念头. 说干就干,晚上熬夜搞定! 小工具程序及源码工程的下载链接:    点击下载 用简单的方式进行处理,递归删除.下面统计量下要删除的文件: 工程目录下: 工程目录的判断依据: 有工程文件 *.vcxproj *.sdf *.suo *.user 生成目录(Debug/Release等)下的文件: *.obj *.cache *.exp *.ilk *.lastbui

PHP,获取文件夹下所有文件数量的方法。

<?php //给我一个文件夹,返回该文件夹下所有的文件数量 function ShuLiang($url)//造一个方法,给一个参数 { $sl=0;//造一个变量,让他默认值为0; $arr = glob($url);//把该路径下所有的文件存到一个数组里面; foreach ($arr as $v)//循环便利一下,吧数组$arr赋给$v; { if(is_file($v))//先用个if判断一下这个文件夹下的文件是不是文件,有可能是文件夹; { $sl++;//如果是文件,数量加一; }