VB.NET 在指定文件夹查找文件 类似的文件
2009-03-02 16:37
405 查看
转自CSDN
''Invoke : funcSearchFile("e:\flash", "*bb*cc*.*")
'参数说明:dir 路径名称,fileName 待查找类似文件名称
Private Function funcSearchFile(ByVal dir As String, ByVal fileName As String) As Boolean
If Not dir.LastIndexOf("\") = dir.Length - 1 Then
dir = dir & "\"
End If
Dim files() As String
Try
files = System.IO.Directory.GetFiles(dir)
Catch ex As Exception
MessageBox.Show(ex.Message.ToString, "出错信息")
Return False
End Try
For Each s As String In files
If funcCompareFileName(fileName, s, True) Then
Console.WriteLine(s)
End If
Next
Dim folders() As String
folders = System.IO.Directory.GetDirectories(dir)
For Each s2 As String In folders
funcSearchFile(s2, fileName)
Next
End Function
Private Function funcCompareFileName(ByVal searchFile As String, ByVal dirFile As String, ByVal First As Boolean) As Boolean
Dim searchFile2 As String = searchFile '备份
Dim dirFile2 As String '备份
dirFile2 = IIf(dirFile.IndexOf("\") >= 0, dirFile.Substring(dirFile.LastIndexOf("\") + 1), dirFile)
''全体文件
If searchFile2 = "*.*" Then
Return True
End If
Dim kk As Integer
Dim fileName As String
Dim col As New Collection
If searchFile2.IndexOf("*") > 0 Then
fileName = searchFile2
If First Then '是否是第一次比较该文件
If fileName.Substring(0, fileName.IndexOf("*")) <> dirFile2.Substring(0, fileName.IndexOf("*")) Then
Return False
End If
End If
While fileName.IndexOf("*") >= 0
kk = dirFile.IndexOf(fileName.Substring(0, fileName.IndexOf("*")))
If kk >= 0 Then
If kk - searchFile.IndexOf("*") >= -1 Then
fileName = fileName.Substring(fileName.IndexOf("*") + 1)
col.Add(kk)
Else
Return False
End If
Else
Return False
End If
End While
''判断所有的匹配是否按升序排列
Dim i As Integer
For i = 1 To col.Count
If i > 1 Then
If col(i) < col(i - 1) Then
Return False
End If
End If
Next
Return True
ElseIf searchFile2.IndexOf("*") = 0 Then
Return funcCompareFileName(searchFile2.Substring(1, searchFile2.Length - 1), dirFile2, False)
Else '完整匹配文件名称
If searchFile2 = dirFile2 Then
Return True
Else
Return False
End If
End If
End Function
''Invoke : funcSearchFile("e:\flash", "*bb*cc*.*")
'参数说明:dir 路径名称,fileName 待查找类似文件名称
Private Function funcSearchFile(ByVal dir As String, ByVal fileName As String) As Boolean
If Not dir.LastIndexOf("\") = dir.Length - 1 Then
dir = dir & "\"
End If
Dim files() As String
Try
files = System.IO.Directory.GetFiles(dir)
Catch ex As Exception
MessageBox.Show(ex.Message.ToString, "出错信息")
Return False
End Try
For Each s As String In files
If funcCompareFileName(fileName, s, True) Then
Console.WriteLine(s)
End If
Next
Dim folders() As String
folders = System.IO.Directory.GetDirectories(dir)
For Each s2 As String In folders
funcSearchFile(s2, fileName)
Next
End Function
Private Function funcCompareFileName(ByVal searchFile As String, ByVal dirFile As String, ByVal First As Boolean) As Boolean
Dim searchFile2 As String = searchFile '备份
Dim dirFile2 As String '备份
dirFile2 = IIf(dirFile.IndexOf("\") >= 0, dirFile.Substring(dirFile.LastIndexOf("\") + 1), dirFile)
''全体文件
If searchFile2 = "*.*" Then
Return True
End If
Dim kk As Integer
Dim fileName As String
Dim col As New Collection
If searchFile2.IndexOf("*") > 0 Then
fileName = searchFile2
If First Then '是否是第一次比较该文件
If fileName.Substring(0, fileName.IndexOf("*")) <> dirFile2.Substring(0, fileName.IndexOf("*")) Then
Return False
End If
End If
While fileName.IndexOf("*") >= 0
kk = dirFile.IndexOf(fileName.Substring(0, fileName.IndexOf("*")))
If kk >= 0 Then
If kk - searchFile.IndexOf("*") >= -1 Then
fileName = fileName.Substring(fileName.IndexOf("*") + 1)
col.Add(kk)
Else
Return False
End If
Else
Return False
End If
End While
''判断所有的匹配是否按升序排列
Dim i As Integer
For i = 1 To col.Count
If i > 1 Then
If col(i) < col(i - 1) Then
Return False
End If
End If
Next
Return True
ElseIf searchFile2.IndexOf("*") = 0 Then
Return funcCompareFileName(searchFile2.Substring(1, searchFile2.Length - 1), dirFile2, False)
Else '完整匹配文件名称
If searchFile2 = dirFile2 Then
Return True
Else
Return False
End If
End If
End Function
相关文章推荐
- VB.NET 查找某路径下最新文件夹和最新的TXT文件
- vb查找指定文件夹下面的所有文件和其子目录下的文件
- C#查找指定文件夹下指定后缀名的所有文件
- asp.net 删除文件夹,指定文件夹,删除文件夹和所有文件,删除权限设置,递归删除文件夹目录及文件
- 查找文件夹下指定类型文件
- 用python查找在指定目录下特定文件夹下的指定文件
- .NETFramework,Version=v4.5.AssemblyAttributes.vb 系统找不到指定的文件
- Perl 在指定文件夹中的文件中查找包含指定字符的行
- vb-复制ie临时文件夹下所有mp3文件到指定目录,并且将utf8编码转换过来
- 【VB.NET】利用SharpZipLib压缩与解压文件夹中的所有文件、内存中动态压缩解压数据、内存中压缩与解压文本
- vb.net 如何选择文件夹 不是文件
- vb 实现查找指定的文件,并按照文件名排序
- Sublime Text 查找时排除指定的文件夹或文件
- [VB.NET]如何用打开指定文件
- 递归遍历文件夹查找指定文件
- ASP.NET 删除指定目录下的所有文件和文件夹
- 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)
- asp.net从服务器(指定文件夹)下载任意格式的文件到本地
- matlab查找指定文件夹下文件(附汉字和标点符号读取方法)
- Sublime Text 查找时排除指定的文件夹或文件