首先壹個基本概念要先搞清楚:在FAT32文件系統中,壹個文件夾內放的文件及子文件夾數量的上限是65534個(如果用了長文件名,這個數量會減少),而在NTFS文件系統中,這個值就變為4G-1即40多億,幾乎是無限了。妳說的15萬個文件的文件夾,那很顯然是NTFS系統的。
其次,VB6是上世紀末出生的老古董軟件,是32位的程序開發語言,它誕生的時候,FAT32是當時最常見也是最先進的文件系統,所以VB6也是按FAT32來操作文件的,再考慮到要兼容長文件名,所以VB6本身的控件和函數在壹個文件夾中所能操作的文件數量限制是32767個(折半)。
因此,妳這15萬個文件的文件夾是無法用VB本身自帶的控件或函數來遍歷的,只能使用第三方控件或組件,比如大名鼎鼎的FSO:
Dim?fso?As?Object,?fd?As?Object,?f?As?ObjectSet?fso?=?CreateObject("Scripting.FileSystemObject")
Set?fd?=?fso.GetFolder("要處理的文件夾全路徑名寫在這")
For?Each?f?In?fd.Files
'這裏是對遍歷出的每個文件進行操作
'其中f.Name是文件名,f.Path是文件路徑,
'f.Size是文件大小,f.Type是文件類型,等等
'為了防止卡頓,可以在這個循環裏用下面這行:
'DoEvents
Next
Set?fd?=?Nothing
Set?fso?=?Nothing
我沒測試,因為我沒有這麽多文件的文件夾。
如果這個方法也不行,那就只能用API了。