1. 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
詳見源代碼!!
2. 使用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了。
3. VB.net遍歷某個文件夾,並讀取子目錄中的指定文件
vb.net:
Dim path = System.IO.Directory.GetFiles("D:\Log\abc", "*.txt", SearchOption.AllDirectories):搜索該抄路徑下的所有txt類型的目襲錄及子目錄
path.AddRange(path)
Dim _RecordInfo As String
Dim _Reader As StreamReader
_Reader = New StreamReader(file, System.Text.Encoding.Default):'以Default編碼的形式讀取file文件(文件寫入的編碼要與讀取的編碼一致)
4. VB.net遍歷某個文件夾,並讀取子目錄中的指定文件
vb.net:
Dim
path
=
System.IO.Directory.GetFiles("D:\Log\abc",
"*.txt",
SearchOption.AllDirectories):抄搜索該路徑下的所有txt類型的目錄及子目錄
path.AddRange(path)
Dim
_RecordInfo
As
String
Dim
_Reader
As
StreamReader
_Reader
=
New
StreamReader(file,
System.Text.Encoding.Default):'以Default編碼的形式讀取file文件(文件寫入的編碼要與讀取的編碼一致)
5. 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
6. 求大神指點 vb.net 怎麼 遍歷目錄下的所有文件夾和文件夾下的所有文件 exe|txt.bmp|dll ...
IO.Directory.GetDirectories("文件復夾制") '獲取文件夾中的所有子文件夾路徑。
IO.Directory.GetFiles("文件夾") '獲取文件夾下所有文件的路徑。
'子文件夾的子文件夾,用遞歸;
7. VBA中怎麼遍歷所選路徑中所有文件夾及其子文件夾(多個子文件),並返回所有的最底層的文件夾路徑
答:執行"獲取所有文件夾",按提示操作。文件夾清單會顯示在工作表的AB列中。
Sub獲取所有文件夾()
DimDirectoryAsString
WithApplication.FileDialog(msoFileDialogFolderPicker)
.InitialFileName=Application.DefaultFilePath&""
.Title="請選擇一個文件夾"
.Show
If.SelectedItems.Count=0Then
ExitSub
Else
Directory=.SelectedItems(1)
EndIf
EndWith
Cells.ClearContents
CallRecursiveDir(Directory)
EndSub
PublicSubRecursiveDir(ByValCurrDirAsString)
DimDirs()AsString
DimNumDirsAsLong
DimFilesizeAsDouble
DimTotalFolders,SingleFolder
Cells(1,1)="目錄名"
Cells(1,2)="日期/時間"
Range("A1:B1").Font.Bold=True
SetTotalFolders=CreateObject("Scripting.FileSystemObject").GetFolder(CurrDir).SubFolders
Cells(WorksheetFunction.CountA(Range("A:A"))+1,1)=CurrDir
Cells(WorksheetFunction.CountA(Range("B:B"))+1,2)=FileDateTime(CurrDir)
IfTotalFolders.Count<>0Then
ReDimPreserveDirs(0ToNumDirs)AsString
Dirs(NumDirs)=SingleFolder
NumDirs=NumDirs+1
Next
EndIf
Fori=0ToNumDirs-1
RecursiveDirDirs(i)
Nexti
EndSub
8. vb或易語言中如何遍歷c盤中的文件夾,注意只是文件夾,把文件名讀出來
On Error Resume Next
Dim str1 As String, str2
Set fso = CreateObject("Scripting.FileSystemObject")
Set Folders = fso.GetFolder("c:\")
Set fFolder = Folders.SubFolders
Set fFile = Folders.Files
For Each fffolder In fFolder
str1 = str1 & " " & fffolder.Name
Next
MsgBox str1 '遍歷輸出c盤所有文件夾名
For Each fffile In fFile
str2 = str2 & " " & fffile.Name
Next
MsgBox str2 '遍歷輸出c盤所有文件名