利用FindFirstFile和Createfile来遍历目录已经生成句柄

今天的任务:

学习FindFirstFile(https://msdn.microsoft.com/zh-cn/library/windows/desktop/aa364418(v=vs.85).aspx)

Createfile(https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx);

练习枚举一个指定文件夹的所有文件hash。

调试心得:

1.写代码必须养成的好习惯:函数有返回值时,要判断其是否出错,特别是处理的值后续要用到时;定义要简单明了有意义;

2.creatfile的参数需要注意,不同的场景选不同参数,本次遇到的问题是在循环里第二个参数dwDesiredAccess不能设置为0,改为GENERIC_READ后,通过编译

3.ASCII码和Unicode一些类型对应,以及转换。如char->wchar_t  可以直接在前面加L;

4.wchar_t 的数组赋值与char数组一样,不能直接实现,要用wcscpy_s/wcscpy;拼接用wcscat。

时间: 2024-10-26 08:41:59

利用FindFirstFile和Createfile来遍历目录已经生成句柄的相关文章

c#调用api(FindFirstFile,FindNextFile)高效遍历目录文件【转载】

在c#下遍历目录,应用最多的应该就是 System.IO.DirectoryInfo.GetDirectories或GetFiles了,但是当目录特别大,文件特别多时,效率不尽人意,此时我们很容易想到三个Win32API函数 FindFirstFile,FindNextFile和FindClose.这三个API搭配使用就能遍历文件和子目录了,而且可以遍历的时候随时中止,避免无谓的操作.在网上搜了一下,发现这方面的文章转载最多的应该就是http://www.cnblogs.com/xdesigne

利用 os.walk() 遍历目录

os.walk: walk(top, topdown=True, onerror=None, followlinks=False) 参数: top 要遍历的目录地址 topdown 为真,则优先遍历top目录,否则优先遍历top的子目录(默认为True)(广度深度) onerror 需要一个 callable 对象,当walk需要异常时,会调用 followlinks 如果为真,则会遍历目录下的快捷方式 os.walk 的返回值是一个生成器(generator), 他会不断的遍历所给目录下的所有

vs中实现遍历目录

这两天实现了在vs下遍历指定目录的所有文件,求出对应的hash码,最后封装成动态库. 首先总结一下思想和用到的主要函数: 1.用FindFirstFile函数可以开始寻找第一得到的文件,并返回一个句柄用来做FindNextFile输入,将文件信息存入fileinfo结构中: 2.利用fileinfo中dwFileAttributes的值判断得到的文件是文件还是目录,如果是目录则进入子目录遍历:如果是文件则调用基于名字的hash计算函数,得到对应的hash码,调用CreateFile得到文件的句柄

递归的使用:遍历目录函数

2016.12.21,星期三   利用递归输出显示C盘中所有的文件及文件夹: <?php //遍历目录 function wenJian($path,$v = 0) {// $path = "."; //打开目录 $a = opendir($path) ; //读取目录,readdir(资源名(通道)) // $b = readdir($a); //$b=readdir($a)外面的括号必须加上,"="赋值运算符运算等级小于"!=="比较运

(实用篇)PHP不用递归遍历目录下所有文件的代码

<?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

php遍历目录输出目录及其下的所有图片文件

在做网站的时候,需要给文章内所有的图片添加上logo,如何利用ThinkPHP来实现. ThinkPHP为我们很好的提供了图像处理类,给文章中的所有图片加上水印的思路,上传的图片文件都保存在一个文件夹下面,我只需要获取该文件夹以及子文件夹下面的所有图片,遍历一次,加上水印即可,因此目前的难度只是怎么获取文件中的图片,并且遍历一次即可.[在ImagesController控制器中具体会出现二维数组的遍历]:因此添加水印的图片问题就转换成了利用PHP遍历目录输出目录及其下的所有图片文件 //遍历目录

PHP遍历目录四种方法

学习SPL的时候,遇到了DirectoryIterator这个目录类,谢了一下遍历目录的方法.于是总结一下遍历目录的四种写法 如下: <?php /* * 方法一:利用SPL的目录类,这个很简单 */ $obj = new DirectoryIterator('E:\wamp\bin\php\php5.3.3'); foreach ($obj as $file){ echo $file->getFileName(); echo "<br/>"; } /* * 方

JDK7之新的遍历目录API

jdk7之前,我们遍历目录,一般都是判断当前文件是普通文件和目录文件,从而递归的遍历其子目录,利用file 过滤,过滤出符合我们需要的文件. 这种都是需要我们显示的写递归程序的,不过JDK7新增加的新类Paths.Files方便了我们对目录的操作. 下面例子是寻找某一目录下所有java源程序文件的代码: public class FindingFilesInADirectory { public static void main(String[] args) { Path path = Path

C++ 遍历目录所有文件并判断是否为目录

1. 思路 使用FindFirstFile.FindNextFile函数,来遍历目录.结果保存在WIN32_FIND_DATA结构体中.将查询结果的dwFileAttributes和FILE_ATTRIBUTE_DIRECTORY取与操作,判断是否为目录. 2. 示例代码 #include <iostream> #include <stdio.h> #include <windows.h> using namespace std; int main() { HANDLE