-
VB.Net递归文件搜索实例
VB.Net递归文件搜索实例
代码如下:
- Option Strict On
- Option Explicit On
- Imports System.IO
- Public Class FileSearch
- Private Const DefaultFileMask As String = "*.*"
- Private Const DefaultDirectoryMask As String = "*"
- #Region " Member Variables "
- Private _InitialDirectory As DirectoryInfo
- Private _DirectoryMask As String
- Private _FileMask As String
- '
- Private _Directories As New ArrayList
- Private _Files As New ArrayList
- #End Region
- #Region " Properites "
- Public Property InitialDirectory() As DirectoryInfo
- Get
- Return _InitialDirectory
- End Get
- Set(ByVal Value As DirectoryInfo)
- _InitialDirectory = Value
- End Set
- End Property
- Public Property DirectoryMask() As String
- Get
- Return _DirectoryMask
- End Get
- Set(ByVal Value As String)
- _DirectoryMask = Value
- End Set
- End Property
- Public Property FileMask() As String
- Get
- Return _FileMask
- End Get
- Set(ByVal Value As String)
- _FileMask = Value
- End Set
- End Property
- Public ReadOnly Property Directories() As ArrayList
- Get
- Return _Directories
- End Get
- End Property
- Public ReadOnly Property Files() As ArrayList
- Get
- Return _Files
- End Get
- End Property
- #End Region
- #Region " Constructors "
- Public Sub New()
- End Sub
- Public Sub New( _
- ByVal BaseDirectory As String, _
- Optional ByVal FileMask As String = DefaultFileMask, _
- Optional ByVal DirectoryMask As String = DefaultDirectoryMask)
- Me.New(New IO.DirectoryInfo(BaseDirectory), FileMask, DirectoryMask)
- End Sub
- Public Sub New( _
- ByVal BaseDirectory As DirectoryInfo, _
- Optional ByVal FileMask As String = DefaultFileMask, _
- Optional ByVal DirectoryMask As String = DefaultDirectoryMask)
- _InitialDirectory = BaseDirectory
- _FileMask = FileMask
- _DirectoryMask = DirectoryMask
- End Sub
- #End Region
- Protected Overrides Sub Finalize()
- _Files = Nothing
- _Directories = Nothing
- MyBase.Finalize()
- End Sub
- Public Sub Search( _
- Optional ByVal BaseDirectory As DirectoryInfo = Nothing, _
- Optional ByVal FileMask As String = Nothing, _
- Optional ByVal DirectoryMask As String = Nothing)
- If Not IsNothing(BaseDirectory) Then
- _InitialDirectory = BaseDirectory
- End If
- If IsNothing(_InitialDirectory) Then
- Throw New ArgumentException("A Directory Must be specified!", "Directory")
- End If
- If IsNothing(FileMask) Then
- _FileMask = DefaultFileMask
- Else
- _FileMask = FileMask
- End If
- If IsNothing(DirectoryMask) Then
- _DirectoryMask = DefaultDirectoryMask
- Else
- _DirectoryMask = DirectoryMask
- End If
- DoSearch(_InitialDirectory)
- End Sub
- Private Sub DoSearch(ByVal BaseDirectory As DirectoryInfo)
- Try
- _Files.AddRange(BaseDirectory.GetFiles(_FileMask))
- Catch u As UnauthorizedAccessException
- 'Siliently Ignore this error, there isnt any simple
- 'way to avoid this error.
- End Try
- Try
- Dim Directories() As DirectoryInfo = BaseDirectory.GetDirectories(_DirectoryMask)
- _Directories.AddRange(Directories)
- For Each di As DirectoryInfo In Directories
- DoSearch(di)
- Next
- Catch u As UnauthorizedAccessException
- 'Siliently Ignore this error, there isnt any simple
- 'way to avoid this error.
- End Try
- End Sub
- End Class
代码如下:
- Dim x As New FileSearch(New IO.DirectoryInfo("d:\Media\"), "*.nfo")
- x.Search()
- MessageBox.Show(x.Files.Count) ' number of files that match "*.nfo" in D:\Media
- MessageBox.Show(x.Directories.Count) ' the total number of directories looked through
出处:https://www.cnblogs.com/nieyj/archive/2010/12/23/1914722.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式