2011-01-12 34 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 
相關問題