2011-01-12 24 views
3

在Windows操作系统上,如何在不使用第三方库或使用FindFirstFile,FindNextFile等的情况下迭代给定目录中的文件?在不使用FindFirstFile的情况下在目录中迭代文件

+2

此示例代码出于好奇,有什么用FindFirstFile是错的? – 2011-01-12 18:18:16

+1

做一个资源管理器窗口和OCR的截图吗? Win32不会经常提供两种单独的方式来完成完全相同的工作。 – 2011-01-12 18:43:13

回答

3

鉴于FindFirstFile是Windows中的主要文件枚举方法,您还期望得到什么?有一些NT API函数(ZwQueryDirectoryFile和类似的函数),它们被FindFirstFile调用,但它们更复杂,并没有带来真正的好处。

0

如果您可以使用托管代码,那么使用Directory.EnumerateFiles编程会更容易一些。

返回指定路径中文件名的可枚举集合 。

0

我知道列出目录中的文件的唯一方法是使用作为Windows脚本库一部分的Scripting.FileSystemObject对象。您可以在C++,delphi或支持访问COM的任何语言中使用此对象。

检查在VBScript

Set objFSO = CreateObject("Scripting.FileSystemObject") 
objStartFolder = "C:\test" 
Set objFolder = objFSO.GetFolder(objStartFolder) 
Set colFiles = objFolder.Files 
For Each objFile in colFiles 
    Wscript.Echo objFile.Name 
Next 
相关问题