當前位置:成語大全網 - 新華字典 - 使用VB遍歷文件夾內的所有文件,文件夾內沒有子文件夾,內含的文件最多15萬

使用VB遍歷文件夾內的所有文件,文件夾內沒有子文件夾,內含的文件最多15萬

首先壹個基本概念要先搞清楚:在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?Object

Set?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了。