一个用得着的查找文件(及目录)的方法
来源:互联网 发布:apache windows下载 编辑:程序博客网 时间:2024/05/16 19:39
以下代码示例了如何在一个指定的目录(包含目录列表)中查找需要的文件.
首先,我们需要建立一个自己的文件类,用于文件和目录
Public Class myFileInfo
'@自定义的myFileInfo类,用于保存文件(包含目录)的信息
Public FullFileName As String '满文件名( 包含路径)
Public FileAttribute As System.IO.FileAttributes '文件的属性
End Class
这个很简单的类也可以用结构代替
'@文件查找功能:查找指定目录列表中的文件名,结果返回包含此文件名的对象
'@输入:lstDirName,包含指定目录的字符串数组列表 ,FileName,指定要查找的文件名
'@输出ArrayList对象,内含自定义的FileInfo对象
'示例:Dim tmpSyn As New SyncDirectory(Label1)
'@ Dim tmpStr(2) As String
'@ tmpStr(0) = "F:/2006天"
'@ tmpStr(1) = "F:/2005夏"
'@ Dim tmpArray As ArrayList = tmpSyn.FindFileInDirectory(tmpStr, "图片")
Public Overridable Function FindFileInDirectory(ByVal lstDirName As String(), ByVal FileName As String) As ArrayList
Dim dirArray As New ArrayList '要返回的内容
Dim subArray As ArrayList '来自子级的内容
Try
Dim i As Integer
For Each tmpStrDir As String In lstDirName
subArray = FindFileInDirectory(tmpStrDir, FileName)
For i = 0 To subArray.Count - 1
'将子级的加入到当前级
dirArray.Add(subArray(i))
Next
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Return dirArray
End Function
'@文件查找功能:查找指定目录列表中的文件名,结果返回包含此文件名的对象
'@输入:DirName,包含指定目录的字符串 ,FileName,指定要查找的文件名
'@输出ArrayList对象,内含自定义的FileInfo对象
'@示例:Dim tmpArray As ArrayList = tmpSyn.FindFileInDirectory("F:/2005夏", "图片")
Public Overridable Function FindFileInDirectory(ByVal DirName As String, ByVal FileName As String) As ArrayList
Dim dirArray As New ArrayList '要返回的内容
Dim subArray As ArrayList '来自子级的内容
Try
Dim i As Integer
Dim tmpD As New DirectoryInfo(DirName)
Dim tmpFiles As FileInfo() = tmpD.GetFiles() ''取源文件夹,返回的是Fileinfo()
For Each tmpFile As FileInfo In tmpFiles
''循环查询所有的文件
If tmpFile.Name.IndexOf(FileName) >= 0 Then
'如果找到包含的,则加入到Arraylist中
Dim tmpFileInfo As New myFileInfo
With tmpFileinfo
.FullFileName = tmpFile.FullName
.FileAttribute = tmpFile.Attributes
End With
dirArray.Add(tmpFileInfo)
End If
Next
Dim tmpDirs As DirectoryInfo() = tmpD.GetDirectories()
For Each tmpDir As DirectoryInfo In tmpDirs
subArray = FindFileInDirectory(tmpDir.FullName, FileName) '递归处理所有的目录
If tmpDir.Name.IndexOf(FileName) >= 0 Then
'如果目录名也包含FileName,则也加入到arraylist中
Dim tmpFileInfo As New myFileInfo
With tmpFileinfo
.FullFileName = tmpDir.FullName
.FileAttribute = tmpDir.Attributes
End With
dirArray.Add(tmpFileInfo)
End If
For i = 0 To subArray.Count - 1
'将子级的加入到当前级
dirArray.Add(subArray(i))
Next
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Return dirArray
End Function
两个方法的注释都已经很详细了,不多说,自己看代码
如果有更好的方法可以给我讲讲.让我能不断进步
- 一个用得着的查找文件(及目录)的方法
- 查找一个目录下的所有文件
- 查找一个目录下的所有文件
- java classpath如何指定一个目录及java资源文件的路径查找问题
- VIM下,在文件及目录中查找字符串的方法 (vimgrep)
- VIM下,在文件及目录中查找字符串的方法 (vimgrep)
- VIM下,在文件及目录中查找字符串的方法 (vimgrep)
- VIM下,在文件及目录中查找字符串的方法 (vimgrep)
- VIM下,在文件及目录中查找字符串的方法 (vimgrep)
- VIM下,在文件及目录中查找字符串的方法 (vimgrep)
- VIM下,在文件及目录中查找字符串的方法 (vimgrep)
- C++查找一个目录下所有特定扩展名的文件
- 【笔记】Python 实现目录及子目录文件的查找
- 查找目录或文件的几种方法
- 查找某个命令相应文件所在目录的方法
- Linux下查找大文件,大目录的方法
- Linux下查找大文件,大目录的方法
- 想要在当前目录及子目录中查找所有的‘ *.txt’文件,可以用:
- 在Spring中使用JDO
- 操作系统--CPU调度
- ACE中的线程安全接口模式
- 黑客攻破SQL服务器系统的十种方法
- ADO 笔记 ——关于RecordCount
- 一个用得着的查找文件(及目录)的方法
- 掌握 Ajax,第 3 部分: Ajax 中的高级请求和响应
- [搞笑] 后舍男生最完美的视频收藏全纪录
- ant详解
- 给电影人的情书
- STL Deque 总结
- 《I will miss you》我会想你
- 闪
- Ken Orr 对 Java 程序员的建议 (写出高质量软件的秘密)