VB.NET 在指定文件夹查找文件 类似的文件

转自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

转载于:https://www.cnblogs.com/lwl0606/archive/2009/03/02/1401608.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值