vb 如何读取某目录下所有文件及子文件夹

作者&投稿:针试 (若有异议请与网页底部的电邮联系)
vb2013 如何获取指定目录下及子目录下所有文件?~

这个分两个步骤。

第一步是利用 System.IO.DirectoryInfo 类的 GetDirectories() 方法,遍历指定目录下的所有子目录。

第二步是利用 System.IO.DirectoryInfo 类的 GetFiles() 方法,遍历这些子目录(包括根目录)下的所有文件。

原理就是这样,代码可参考:http://blog.csdn.net/aspnet2002web/article/details/6087476 这篇博文。

用DOS命令:
(假设你的这个文件夹是c:\pdf)
dir c:\pdf\*.pdf > c:\pdf\list.txt
运行完之后到目录下去找一个文件名是list.txt的,打开就是文件名了

查找某目录下所有 文件 及 子文件夹
试一试不用 FileSystemObject 对象,只用基本控件的代码。
'例子需控件:Command1,List1,List2,File1,Dir1,都采用默认属性。
'例如,查找 C:\ ,带 '** 的语可修改

Dim ctFind As Boolean
Private Sub Form_Load()
Me.Caption = "查找所有文件及文件夹"
Command1.Caption = "查找"
List2.Visible = False: File1.Visible = False: Dir1.Visible = False
Label1.Caption = "就绪"
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Private Sub Form_Resize()
Dim W As Long
On Error Resume Next
W = 720
List1.Move 0, 0, Me.ScaleWidth - W - 120, Me.ScaleHeight - 300
Command1.Move Me.ScaleWidth - W - 60, 300, W
Label1.Move 90, Me.ScaleHeight - 255, Screen.Width, 255
End Sub
Private Sub Command1_Click()
ctFind = Not ctFind
If ctFind Then
Command1.Caption = "取消"
Call FindDirFile("C:") '**查找 C:\ 下的所有文件和目录,或 C:\Windows 等
Command1.Caption = "查找"
Else
Command1.Caption = "查找"
End If
End Sub
Private Sub FindDirFile(ByVal nPath As String)
Dim I As Long, nDir As String, Ci As Long
ctFind = True
List1.Clear: List2.Clear
If Right(nPath, 1) <> "\" Then nPath = nPath & "\"
List1.AddItem "查找 " & nPath: List2.AddItem nPath
File1.Pattern = "*"
File1.System = True: File1.Hidden = True: File1.ReadOnly = True
On Error GoTo Cuo
Dir1.Path = nPath
On Error GoTo 0
Do
If List2.ListCount = 0 Then Exit Do
nPath = List2.List(0)
List2.RemoveItem 0
Dir1.Path = nPath
For I = 0 To Dir1.ListCount - 1
GoSub ShowGe
nDir = Dir1.List(I)
If Right(nDir, 1) <> "\" Then nDir = nDir & "\"
List1.AddItem "■" & nDir
List2.AddItem nDir
Next
File1.Path = nPath
For I = 0 To File1.ListCount - 1
GoSub ShowGe
List1.AddItem " " & nPath & File1.List(I)
Next
Loop
Label1.Caption = "查找完毕,共找到 " & List1.ListCount & " 个条目"
ctFind = False
Exit Sub
Cuo:
List1.AddItem "起始目录不存在:" & nPath
ctFind = False
Exit Sub
ShowGe:
Ci = Ci + 1
If Ci < 99 Then Return
Ci = 0
Label1.Caption = "已找到 " & List1.ListCount & " 个:" & nPath
DoEvents
If ctFind Then Return
End Sub

首先点击 工程——引用 勾选 microsoft scripting runtime
添加一个cmd按钮和 一个listbox,复制以下代码

Private Sub Command1_Click()
Findfolder "f:\" '设置搜索路径
End Sub

Private Sub Findfolder(ByVal mypath As String)
Dim fso As New FileSystemObject
Dim myfolder As Folder
Dim Item
mypath = IIf(Right(mypath, 1) = "\", mypath, mypath & "\")
Set myfolder = fso.GetFolder(mypath)
If myfolder.Files.Count > 0 Then
For Each Item In myfolder.Files
List1.AddItem fso.GetBaseName(Item)
DoEvents
Next
End If
If myfolder.SubFolders.Count > 0 Then
For Each Item In myfolder.SubFolders
List1.AddItem fso.GetBaseName(Item) '只获取文件夹名称,注意:如果文件夹名称包括若干个"."的话,只能获取最后一个点前面的字符
Call Findfolder(Item) '比如文件夹名为“11.22.33”那么读取出来就是"11.22"
DoEvents
Next
End If
End Sub


毕节市19226864395: vb获取一个目录下所有文件并存储到一个数组,包括子目录 -
答沸水杨: 首先我是将文件显示做了区分:文件夹名称显示folderlist(),文件名称显示filelist():Private Function folderlist(pathname As String, treeflag As Integer) 'treeflag:0列表 1树形 2树形展开'文件夹数和名称 Dim sf As String sf = Dir(pathname, vbDirectory...

毕节市19226864395: vb2013 如何获取指定目录下及子目录下所有文件? -
答沸水杨: 这个分两个步骤.第一步是利用 System.IO.DirectoryInfo 类的 GetDirectories() 方法,遍历指定目录下的所有子目录.第二步是利用 System.IO.DirectoryInfo 类的 GetFiles() 方法,遍历这些子目录(包括根目录)下的所有文件.原理就是这样,代码可参考:http://blog.csdn.net/aspnet2002web/article/details/6087476 这篇博文.

毕节市19226864395: vb 读取目录下所有文件 -
答沸水杨: Files属性 描述 返回由所有 File 对象组成的 Files 集合,这些 File 对象包含在指定的文件夹中——包括设置了隐藏和系统文件属性的那些文件.语法 object.Files object 总是一个 Folder 对象.说明 下面的代码举例说明了 Files 属性的用法:Sub ...

毕节市19226864395: vb 如何让List1中显示一个目录下的所有文件(包括子文件夹里的文件)? -
答沸水杨: LIST1显示D:\123\下面的所有文件!Private Sub Command1_Click() Dim Filename As String, mypath As String, k As Integer mypath = "D:\123\" 'Range("A1:A10") = "" List1.Text = "" Filename = Dir(mypath & "*.*") 'DIR可以显示相应...

毕节市19226864395: vb 获取目录所有文件名 -
答沸水杨: 1、首先,在电脑上打开VB6.0属性窗口,新建一个EXE工程窗口. 2、然后,就能在这里看到帮组文件名一栏.这时,就能在这里按下这个三点进行选择文件. 3、接下来就可以这个帮组文件的窗口. 4、此时,就能在这里进行帮组文件的加载. 5、最后,点击打开按钮既可打开VB的帮助文件.

毕节市19226864395: VB如何获取一个目录下所有文件名?
答沸水杨: 代码如下,假设你要获取"D:\"下的文件,只需将下面的foldername = "d:\"的"d:\"换为你要获取的目录就行了,另外filenames(100) 是存取文件名,要尽量大一些维数比你大文件多才行. Private Sub Form_Load()Dim fname As ...

毕节市19226864395: vb 获得一个文件夹下所有子文件夹名,并全部添加到组合框里,只要文件名,不要全部路径 -
答沸水杨: 添加一个Dirlistbox,Textbox,一个按钮,一个组合框... 按钮的单击事件如下Private Sub Command1_Click() Dim i As Integer Dim b As Integer Dim a As String a = Text1.Text Dir1.Path = a b = Len(a) Combo1.Clear For i = 0 To Dir1.ListCount - 1 ...

毕节市19226864395: VB如何读取某个目录下的所有文件夹名称 -
答沸水杨: 控件:按钮一个 列表框一个 Function SearchFiles(Path As String, FileType As String) Dim Files() As String '文件路径 Dim Folder() As String '文件夹路径 Dim a, b, c As Long Dim sPath As String sPath = Dir(Path & FileType) '查找第一个文件 Do ...

毕节市19226864395: VB 如何遍历文件夹下所有文件,高手请指教 -
答沸水杨: 窗体上有四个控件,命令按钮command1.列表框list1.驱动器列表Drive1.文件夹列表Dir1. 驱动器和文件夹列表是用来选择你想要搜索的文件夹. 程序运行时选中你想要搜索的文件夹,单击搜索按钮.该文件夹下面所有的文件及子文件夹里...

毕节市19226864395: VB点击按钮读取一个文件夹中所有子文件的名称 -
答沸水杨: Private i%, myfile$ Private Sub Command1_Click() Dim m, sptOn Error Resume Nexti = 0myfile = ""OutFile "D:\图片\", "jpg"If MsgBox("一共找到 " & i & " 个文件.是否载入列表?", vbYesNo) = vbYes Thenspt = Split(myfile,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网