如何用vb.net遍历一个文件夹下的所有文件包括子文件夹?

xwylpsy 2009-06-30 11:07:07
帮帮忙!!如何用vb.net遍历一个文件夹下的所有文件包括子文件夹?
...全文
1960 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mentallism 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 linjimu 的回复:]

老外写的。改一下,就可以用了。主要用两个函数。一个加载文件夹。一个加载文件,两个可以循环调用。
VB.NET code
''' <summary>
'''加载收藏夹的每一个子目录. 循环被调用.
''' </summary>
Private Sub LoadFavoritesFromFolder(ByVal dirInfo As System.IO.Directory……
[/Quote]

兄弟你这段代码哪找的?
沐NeMo 2009-06-30
  • 打赏
  • 举报
回复
老外写的。改一下,就可以用了。主要用两个函数。一个加载文件夹。一个加载文件,两个可以循环调用。
''' <summary>
'''加载收藏夹的每一个子目录. 循环被调用.
''' </summary>
Private Sub LoadFavoritesFromFolder(ByVal dirInfo As System.IO.DirectoryInfo, ByVal currentNode As TreeNode)
Dim objNode As System.Windows.Forms.TreeNode
For Each objDir As System.IO.DirectoryInfo In dirInfo.GetDirectories()
If currentNode Is Nothing Then
objNode = TvFav.Nodes.Add(objDir.Name, objDir.Name, 0, 1)
Else
objNode = currentNode.Nodes.Add(objDir.Name, objDir.Name, 0, 1)
End If
objNode.Tag = objDir.FullName
'Debug.Print(objNode.Tag)
If objDir.GetDirectories().Length = 0 Then
'这个目录没有子目录。
LoadFavoritesFromPath(objDir.FullName, objNode)
Else
'进行循环添加每一个子目录和文件。
LoadFavoritesFromFolder(objDir, objNode)
LoadFavoritesFromPath(objDir.FullName, objNode)
End If
Next
End Sub

''' <summary>
''' 加载特定路径里面的收藏网址.
''' </summary>
Private Sub LoadFavoritesFromPath(ByVal astrPath As String, ByVal currentNode As TreeNode)
Dim name As String
Dim objDir As New System.IO.DirectoryInfo(astrPath)
Dim myStr, myUrl As String
' Process each URL in the path (URL files end with a ".url" extension
For Each objFile As System.IO.FileInfo In objDir.GetFiles("*.url")
myUrl = ""
Using SR As New StreamReader(objFile.FullName, Encoding.Default)
myStr = SR.ReadLine
Do Until myStr Is Nothing
If myStr.ToLower.StartsWith(URLPrefix) Then
myUrl = myStr.Substring(URLPrefix.Length)
Exit Do
End If
myStr = SR.ReadLine
Loop
End Using
name = Path.GetFileNameWithoutExtension(objFile.Name)
If currentNode Is Nothing Then
TvFav.Nodes.Add(name, name, 2, 2).Tag = myUrl
Else
currentNode.Nodes.Add(name, name, 2, 2).Tag = myUrl
End If
Next
End Sub

调用方法:
'加载收藏夹的内容,包括子目录。
LoadFavoritesFromFolder(New System.IO.DirectoryInfo(FavoritesPath()), root)
'加载收藏网址
LoadFavoritesFromPath(FavoritesPath(), root)
esrichen 2009-06-30
  • 打赏
  • 举报
回复
Private Sub GetAllFile(ByVal path As String)
Dim strDir As String() = System.IO.Directory.GetDirectories(path)
Dim strFile As String() = System.IO.Directory.GetFiles(path)
Dim i As Integer
If strFile.Length > 0 Then
For i = 0 To strFile.Length - 1
Debug.Print(strFile(i))
Next
End If
If strDir.Length > 0 Then
For i = 0 To strDir.Length - 1
GetAllFile(strDir(i))
Next
End If
End Sub
xwylpsy 2009-06-30
  • 打赏
  • 举报
回复
能给出例子吗?谢谢
esrichen 2009-06-30
  • 打赏
  • 举报
回复
补充,遍历需要写一个递归函数
esrichen 2009-06-30
  • 打赏
  • 举报
回复
System.IO.Directory.GetDirectories '获得当前目录下的所有文件夹

System.IO.Directory.GetFiles ‘获得当前目录下的所有文件

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧