2016-08-11 8 views
0

私は文字列()に集めたファイルのリストを持っています。リスト内を見たいと思います。ワイルドカードパターンを使って一致するものを見つけたら、カウンタを増やしてください。私はそれを達成する方法がわかりません。ここで私は、これまでに得たものです。ここにワイルドカードまたは部分的なパターンを含むすべてのファイルを見つける

Dim mytotal As Integer = 0 
Dim lookFor as String = "IWantThisFile" 

Dim myList As ObjectModel.ReadOnlyCollection(Of String) 
myList = My.Computer.FileSystem.GetFiles("C:\myfolder\") 
Dim filename As String 

For Each File As String In myList 
    filename = Path.GetFileNameWithoutExtension(File) 

    If lookFor Like filename Then 
     mytotal = mytotal Like + 1 
    End If 
Next 
+0

'mytotal = mytotal Like + 1' ??それ以外にも、このコードの何が間違っていますか? –

+0

@ Jean-FrançoisFabre "lookFor" = "IWantThisFile"、私の "ファイル名" = IWantThisFileAndMore "したがってインクリメントが得られません。どうすればソートが一致するかをインクリメントすることができます。 –

+0

' Dim lookFor String = "IWantThisFile * ''それをしなければならないかもしれませんが、逆にする必要があります: '' lookFor Like filename' => 'If filename Like lookFor'(わからない) –

答えて

0

3の問題:

  • lookForパターンではありません。まあ、それはそれ自身と一致するだけです
  • If lookFor Like filenameそれをカットしません。 MSDNは、パターンがLikeオペレータの右側になければならないと述べています。それはちょうど逆の方法です。 mytotal = mytotal Like + 1

  • 浮遊Like固定コード転記。

    Dim mytotal As Integer = 0 
    Dim lookFor as String = "IWantThisFile*" 
    Dim myList As ObjectModel.ReadOnlyCollection(Of String) 
    myList = My.Computer.FileSystem.GetFiles("C:\myfolder\") 
    Dim filename As String 
    
    For Each File As String In myList 
        filename = Path.GetFileNameWithoutExtension(File) 
    
        If filename Like lookFor Then 
         mytotal = mytotal + 1 
        End If 
    Next 
    
  • 関連する問題