Help Man
Help Man

Reputation: 71

Get count of similar files in a folder

I have a file, lets call it "myFile.txt", in a folder. There are also going to be other files named "myFile1.txt, myFile2.txt, myFile3.txt, myFile4.txt" in that same folder and so forth. I want to check that folder and count how many times "myFile" shows up in that folder no matter what the extension or the number after "myFile". Here's what I have so far, but it's not getting what I want:

Dim MyFiles1() As String = IO.Directory.GetFiles("filepath", "myFile.txt")

Upvotes: 1

Views: 1732

Answers (2)

expenguin
expenguin

Reputation: 1124

I whipped this up and tested it in Visual Studio:

'Get a list of files from a directory you designate
    Dim counter As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
    counter = My.Computer.FileSystem.GetFiles("C:\YOURDIR")

'Declare your file name
    Dim myfile As String = "YOURFILE"

'Create count dim
    Dim Occurrences As Integer = 0

'Check all files in the array and check them against our filename
    For Each File As String In counter
        If File.Contains(myfile) Then
'If a file is found, add +1
            Occurrences = Occurrences + 1
        End If
    Next
'Display total count
    MsgBox("number of files is " & Occurrences)

This will go and search the path you designate. It will check all files like your filename in the dir. If it finds one, it will count it. This also checks for case insensitive names as well so you can get all variants of your file name.

Upvotes: 1

nhouser9
nhouser9

Reputation: 6780

Something like below:

Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
    Dim fileEntries As String() = Directory.GetFiles(targetDirectory)
    ' Process the list of files found in the directory.
    Dim fileName As String
    For Each fileName In fileEntries
        ' do a simple if statement to see if the file name contains "myFile"
        ' if so add to some count variable you declare

See here for more reference material on the GetFiles() method (which is the key to solving your issue): https://msdn.microsoft.com/en-us/library/07wt70x2%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

Upvotes: 0

Related Questions