在不使用FindFirstFile的情况下迭代目录中的文件

时间:2011-01-12 17:44:14

标签: windows winapi file directory loops

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

如果您能够使用托管代码,使用Directory.EnumerateFiles编程会更容易。

  

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

答案 2 :(得分:0)

我知道列出目录中文件的唯一方法是使用{SARPting库中的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