资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vb.net遍历所有目录 c# 遍历目录

求大神指点 vb.net 怎么 遍历目录下的所有文件夹和文件夹下的所有文件 exe|txt.bmp|dll ...

IO.Directory.GetDirectories("文件夹") '获取文件夹中的所有子文件夹路径。

凤山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

IO.Directory.GetFiles("文件夹") '获取文件夹下所有文件的路径。

'子文件夹的子文件夹,用递归;

在VB.net中,如何遍历指定路径下的文件夹并把文件夹名存储在数组中?

给你一个提示吧!呵呵,剩下的要自己思考哦!

Path:是初始目录的路径

Private Sub WriteArray(ByVal Path As String)

'写入数组代码在这里,直接将Path写到数组就行了。

Dim dir As New IO.DirectoryInfo(Path)

For Each d As IO.DirectoryInfo In dir.GetDirectories

WriteArray(d.FullName) '递归

Next

End Sub

如果子目录较多那么递归会比较费时间,在调用递归前加入application.doevent就行了,这样在应对大递归时不会死机。

至于数组嘛使用 arraylist 最好了。

回答补充:

把递归去掉就行了啊!

用vb.net怎样实现在遍历某一文件夹下的所有文件

'把下面的目录改成你要遍历的目录

Dim MyDir = "C:\Windows"

Dim MyInfo = MyDir + "目录下的所有文件包括:"

For Each MyFile In System.IO.Directory.GetFiles(MyDir)

MyInfo += Environment.NewLine + MyFile

Next

Me.RichTextBox1.Text =MyInfo

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文件(文件写入的编码要与读取的编码一致)

如 何 在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 元 素 来 扩 充 文 件 查 询 功 能( 按 文 件 属 性、 创 建 日 期、 最 后 修 改 日 期、 最 后 访 问 日 期 等 不 同 条 件 的 查 询)。


新闻名称:vb.net遍历所有目录 c# 遍历目录
标题网址:http://cdkjz.cn/article/higojj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220