Search code examples
vb.netfile-type

vb check for specific file type in dir and perform code


I'm trying to make a program that checks for specific file type in a directory, then executes a code if there are any files of that type found.

I'm assuming something like this:

For Each foundFile As String In
  My.Computer.FileSystem.GetFiles(My.Computer.FileSystem.SpecialDirectories.MyDocuments)

  (If any found files are, for example, "txt" files, then display their content.)
Next

Thanks in advance.


Solution

  • You can use Directory.GetFiles or Directory.EnumerateFiles with a parameter for the extension-filter:

    Dim directoryPath = My.Computer.FileSystem.SpecialDirectories.MyDocuments
    Dim allTxtFiles = Directory.EnumerateFiles(directoryPath, ".txt") 
    For each file As String In allTxtFiles
        Console.WriteLine(file)
    Next
    

    The difference between both methods is that the first returns a String(), so loads all into memory immediately whereas the second returns a "query". If you want to use LINQ it's better to use EnumerateFiles, f.e. if you want to take the first 10 files:

    Dim firstTenFiles As List(Of String) = allTxtFiles.Take(10).ToList()