當前位置:首頁 » 文件管理 » vb遍歷文件夾

vb遍歷文件夾

發布時間: 2022-03-12 14:59:35

『壹』 VB6.0中怎樣遍歷一個路徑下的所有內容

'看申明,選擇遍歷文件或者文件夾
Public Function sDirTraV30(ByVal strpath As String, ByRef strFiles() As String, Optional isTraWholeDir As Boolean = True, Optional isRecDir As Boolean = False) As Long
Dim lmax As Long
Dim strTmp As String
Dim sDirList() As String
Dim l As Long
Dim c As Long
Dim i As Integer

If Right$(strpath, 1) <> "\" Then strpath = strpath & "\"
On Error Resume Next
strTmp = Dir(strpath, vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbVolume Or vbDirectory)
c = 0
If Len(strTmp) > 0 And isRecDir Then
lmax = UBound(strFiles) + 1
ReDim Preserve strFiles(lmax)
strFiles(lmax) = strpath
c = c + 1
End If
ReDim sDirList(-1 To -1)

Do While Len(strTmp) > 0
If GetAttr(strpath & strTmp) And vbDirectory Then If Asc(Left(strTmp, 1)) <> 46 Then
If isTraWholeDir Then
lmax = UBound(sDirList) + 1
ReDim Preserve sDirList(-1 To lmax)
sDirList(lmax) = strpath & strTmp
Else
lmax = UBound(strFiles) + 1
ReDim Preserve strFiles(lmax)
strFiles(lmax) = strpath & strTmp
c = c + 1
End If
End If
Else
lmax = UBound(strFiles) + 1
ReDim Preserve strFiles(lmax)
strFiles(lmax) = strpath & strTmp
c = c + 1
End If
strTmp = Dir
Loop

If isTraWholeDir Then
For l = 0 To UBound(sDirList)
c = c + sDirTraV30(sDirList(l), strFiles(), isTraWholeDir, isRecDir)
Next
End If
sDirTraV30 = c
End Function

'我一個小程序中的一段代碼,使用了這個函數(遍歷文件夾),給你看看用法。

Private Sub btnLogin_Click(Index As Integer)
Dim strFiles() As String
Dim tempStr As String
Dim lstStr() As String
Select Case Index
Case 0
Picture1(1).Visible = False
Picture1(2).Visible = False
Picture1(3).Visible = False
Picture1(0).Visible = True
Case 1
Picture1(0).Visible = False
Picture1(2).Visible = False
Picture1(3).Visible = False
Picture1(1).Visible = True

Case 2
Picture1(1).Visible = False
Picture1(0).Visible = False
Picture1(3).Visible = False
Picture1(2).Visible = True

If sDirTraV30(App.Path & "\Data\HX\setting\", strFiles(), False, False) = 0 Then Exit Sub

With lstJS
.ListItems.Clear
.ColumnHeaders.Clear
.View = lvwReport
.ColumnHeaders.Add , , "序號", 550
.ColumnHeaders.Add , , "已存在角色名稱", lstJS.Width - 580
.ColumnHeaders(2).Alignment = lvwColumnCenter
End With
For i = 0 To UBound(strFiles)
strFiles(i) = Replace(strFiles(i), App.Path & "\Data\HX\setting\", "")
If StrComp(strFiles(i), "Default", vbTextCompare) <> 0 Then
If tempStr = "" Then
tempStr = strFiles(i)
Else
tempStr = tempStr & "," & strFiles(i)
End If
End If
Next

lstStr = Split(tempStr, ",")

For i = 0 To UBound(lstStr)
Set ListItemTemp = lstJS.ListItems.Add(, , i + 1)
ListItemTemp.SubItems(1) = lstStr(i)
Next

Case 3
Picture1(1).Visible = False
Picture1(2).Visible = False
Picture1(0).Visible = False
Picture1(3).Visible = True
End Select
End Sub

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

首先一個基本概念要先搞清楚:在FAT32文件系統中,一個文件夾內放的文件及子文件夾數量的上限是65534個(如果用了長文件名,這個數量會減少),而在NTFS文件系統中,這個值就變為4G-1即40多億,幾乎是無限了。你說的15萬個文件的文件夾,那很顯然是NTFS系統的。

其次,VB6是上世紀末出生的老古董軟體,是32位的程序開發語言,它誕生的時候,FAT32是當時最常見也是最先進的文件系統,所以VB6也是按FAT32來操作文件的,再考慮到要兼容長文件名,所以VB6本身的控制項和函數在一個文件夾中所能操作的文件數量限制是32767個(折半)。

因此,你這15萬個文件的文件夾是無法用VB本身自帶的控制項或函數來遍歷的,只能使用第三方控制項或組件,比如大名鼎鼎的FSO:

DimfsoAsObject,fdAsObject,fAsObject
Setfso=CreateObject("Scripting.FileSystemObject")
Setfd=fso.GetFolder("要處理的文件夾全路徑名寫在這")
ForEachfInfd.Files
'這里是對遍歷出的每個文件進行操作
'其中f.Name是文件名,f.Path是文件路徑,
'f.Size是文件大小,f.Type是文件類型,等等
'為了防止卡頓,可以在這個循環里用下面這行:
'DoEvents
Next
Setfd=Nothing
Setfso=Nothing

我沒測試,因為我沒有這么多文件的文件夾。

如果這個方法也不行,那就只能用API了。

『叄』 VB 如何遍歷文件夾下所有文件,高手請指教

窗體上有四個控制項,命令按鈕command1。列表框list1。驅動器列表Drive1。文件夾列表Dir1。
驅動器和文件夾列表是用來選擇你想要搜索的文件夾。
程序運行時選中你想要搜索的文件夾,單擊搜索按鈕。該文件夾下面所有的文件及子文件夾裡面的文件都列到列表框中。
將代碼復制到窗體即可。代碼如下:

Private Sub Command1_Click()
List1.Clear
sosuofile (Dir1.List(Dir1.ListIndex))
MsgBox "搜索完畢!,共找到" + Str(List1.ListCount) + "條記錄。", vbOKOnly + vbExclamation, "提示"
End Sub

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Sub sosuofile(MyPath As String)
Dim Myname As String
Dim dir_i() As String
Dim i, idir As Long
If Right(MyPath, 1) <> "\\" Then MyPath = MyPath + "\\"
Myname = Dir(MyPath, vbDirectory Or vbHidden Or vbNormal Or vbReadOnly)
Do While Myname <> ""

If Myname <> "." And Myname <> ".." Then

If (GetAttr(MyPath & Myname) And vbDirectory) = vbDirectory Then '如果找到的是目錄

idir = idir + 1

ReDim Preserve dir_i(idir) As String

dir_i(idir - 1) = Myname

Else: List1.AddItem "" & MyPath & " " & Myname '把找到的文件顯示到列表框中

End If
End If
Myname = Dir '搜索下一項
Loop
For i = 0 To idir - 1

Call sosuofile(MyPath + dir_i(i))
Next i
ReDim dir_i(0) As String
End Sub

Private Sub Form_Load()
Command1.Caption = "搜索"
End Sub

『肆』 vb.net如何遍歷整個文件夾,後找出某一個文件

解壓密碼:1299
假設路徑為C:\abc
代碼:

Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim Files As ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetFiles("C:\abc") Dim FileSize As Long, FileName As String = Nothing Dim oFileSize As Long For Each File As String In Files oFileSize = My.Computer.FileSystem.GetFileInfo(File).Length If oFileSize > FileSize Then FileSize = oFileSize FileName = File End If Next Dim ListN As ListViewItem = New ListViewItem(My.Computer.FileSystem.GetName(FileName)) ListN.SubItems.Add(oFileSize & " byte") ListN.SubItems.Add(My.Computer.FileSystem.GetFileInfo(FileName).Extension & " 文件") ListN.SubItems.Add(FileName) ListView1.Items.Add(ListN) End SubEnd Class

詳見源代碼!!

『伍』 vb遍歷文件

只找出來路徑?還是需要再做點什麼別的?

可以通過 dir gdvdr**.fet /s /b >1.txt 將找到的文件生成的1.txt文件中,然後再用代碼分析文件即可。

當然通過代碼也可以自動調用和生成,減少了編寫程序來編寫的代碼復雜度。

『陸』 如 何 在VB 中 實 現 目 錄 遍 歷

一、API 函 數 的 聲 明、 自 定 義 數 據 類 型 及 常 量 的 定 義
---- 注 意:API 函 數 的 聲 明 應 在 應 用 程 序 的 代 碼 模 塊 中 進 行, 且 一 條 聲 明 必 須 放 在 一 行 中'API 函 數 的 聲 明
Public Declare Function FindFirstFile Lib
"kernel32" Alias "FindFirstFileA"
(ByVal lpFileName As String,
lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindNextFile Lib
"kernel32" Alias "FindNextFileA"
(ByVal hFindFile As Long, lpFindFileData
As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib
"kernel32" (ByVal hFindFile As Long) As Long

'最大路徑長度和文件屬性常量的定義
Public Const MAX_PATH = 260
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_COMPRESSED = &H800
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100

'自定義數據類型FILETIME和WIN32_FIND_DATA的定義
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
二、 去 掉 固 定 長 度 字 符 串 右 邊 的NULL 字 符(ASCII 值 為0) 和SPACE 字 符(ASCII 值 為32)
---- 由 於 數 據 類 型WIN32_FIND_DATA 的cFileName 元 素 為 定 長 數 據 類 型 且 在 執 行 函 數FindFirstFile 和FindNextFile 後 會 有NULL 字 符, 因 此 需 去 掉 其 中 的 無 效 字 符。
Public Function fDelInvaildChr
(str As String) As String
On Error Resume Next
For i = Len(str) To 1 Step -1
If Asc(Mid(str, i, 1)) < >
0 And Asc(Mid(str, i, 1)) <> 32 Then
fDelInvaildChr = Left(str, i)
Exit For
End If
Next
End Function
三、 遍 歷 主 函 數
---- 參 數 說 明:
strPathName要遍歷的目錄
objList 使用VB的內部控
件ListBox來存放遍歷得到的路徑,之所以
不使用字元串數組是因為數組大小不好定義

Public Sub sDirTraversal
(ByVal strPathName As String, ByRef objList As ListBox)
Dim sSubDir(200) As String
'存放當前目錄下的子目錄,下標可根據需要調整
Dim iIndex As Integer
'子目錄數組下標
Dim i As Integer
'用於循環子目錄的查找

Dim lHandle As Long
'FindFirstFileA的句柄
Dim tFindData As WIN32_FIND_DATA '
Dim strFileName As String '文件名

On Error Resume Next
'初始化變數
i = 1
iIndex = 0
tFindData.cFileName =
"" '初始化定長字元串

lHandle = FindFirstFile
(strPathName & "\*.*", tFindData)
If lHandle = 0 Then '查詢結束或發生錯誤
Exit Sub
End If
strFileName = fDelInvaildChr(tFindData.cFileName)
If tFindData.dwFileAttributes = &H10 Then '目錄
If strFileName <> "." And strFileName <> ".." Then
iIndex = iIndex + 1
sSubDir(iIndex) = strPathName
& "\" & strFileName '添加到目錄數組
End If
Else
objList.AddItem strPathName
& "\" & strFileName
End If
'循環查找下一個文件,直到結束
Do While True
tFindData.cFileName = ""
If FindNextFile(lHandle, tFindData)
= 0 Then '查詢結束或發生錯誤
FindClose (lHandle)
Exit Do
Else
strFileName = fDelInvaildChr
(tFindData.cFileName)
If tFindData.dwFileAttributes = &H10 Then
If strFileName <> "." And strFileName <> ".." Then
iIndex = iIndex + 1
sSubDir(iIndex) = strPathName
& "\" & strFileName '添加到目錄數組
End If
Else
objList.AddItem strPathName & "\" & strFileName
End If
End If
Loop
'如果該目錄下有目錄,則根據目錄數組遞歸遍歷
If iIndex > 0 Then
For i = 1 To iIndex
sDirTraversal sSubDir(i), objList
Next
End If
End Sub
---- 利 用 以 上 遍 歷 方 法, 讀 者 可 以 根 據 數 據 類 型WIN32_FIND_DATA 的dwFileAttributes、ftCreationTime、ftLastAccessTime、ftLastWriteTime 元 素 來 擴 充 文 件 查 詢 功 能( 按 文 件 屬 性、 創 建 日 期、 最 後 修 改 日 期、 最 後 訪 問 日 期 等 不 同 條 件 的 查 詢)。

『柒』 vb6 中 遍歷指定文件夾中的文本文件

SubsFile(dAsString)
DimfsoAsObject,tdAsObject,ffAsObject,ddAsObject
Setfso=CreateObject("scripting.filesystemobject")
Settd=fso.getfolder(d)
ForEachffIntd.Files
IfLCase(Right(ff.Name,4))=".txt"ThenList1.AddItemff.Path
Next
IfCheck1.Value=1Then
ForEachddIntd.subfolders
sFiledd.Path
Next
EndIf
EndSub

PrivateSubCommand3_Click()
List1.Clear
sFileText2.Text
EndSub

『捌』 VB遍歷文件夾中的圖片

添加文件列表控制項,filelist
Dim Shunxu As Integer, zongshu As Integer, strfilename As String
Private Sub Form_Load()
File1.Path = "d:\" ' "d:\123\圖片文件夾" '文件夾路徑
File1.Pattern = "*.gif" '文件格式
Timer1.Interval = 1000
Timer1.Enabled = True
zongshu = File1.ListCount '總數
Shunxu = 0
End Sub

Private Sub Timer1_Timer()
If zongshu > 0 Then
strfilename = File1.List(Shunxu) '圖片文件名
Image1.Picture = LoadPicture(File1.Path + "\" + strfilename) '圖片文件路徑
Shunxu = Shunxu + 1
If Shunxu = zongshu - 1 Then
Shunxu = 0
End If
End If
End Sub

『玖』 vb6.0怎樣遍歷一個指定文件夾

樓主啊.這個剛好我前幾天做過..代碼粘過來吧..Dim mypath As String '定義路徑mypath = App.path & "\" & "photos "目標文件夾Dim stmp$stmp = Dir(mypath & "\*", vbDirectory) While stmp <> vbNullString Combo1.AddItem stmp stmp = Dir()
Wend

『拾』 vb遍歷指定文件夾下所有文本內容

這個程序要求用到的東西不容易用幾句話說清,

打開文件功能中允許選擇多個文件,
選擇文件之後,將多個選擇的文件合並到一個文件中

如果 txt 文件都是 ANSI 編碼相對簡單一些,用 OPEN 就可以進行,如果格式不統一,就要 Unicode/UTF8 等等處理函數了

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:521
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:868
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91