Approx. read time: 2.8 min.
Post: VB.NET Code to search hard drive in background multi-thread
VB.NET Code to search hard drive in background multi-thread:
After many requests from all of you, I have written the requested code in VB.net to do the following:
Pseudo Code: (What will our program do in simple English terminology.)
- Search ALL hard drives, USB media, etc..
- Search ALL directories & sub-directories, on ALL hard drives.
- Place the DRIVE, DIRECTORIES, FILENAME in a memory ARRAY and a text file. Example:
- C:\FILENAME.EXT
- C:\WINDOWS\FILENAME.EXT
- D:\FILENAME.EXT
- D:\BACKUP\FILENAME.EXT
- etc…
- Do this in a way that does not hog system resources. (background process and/or multi threading.)
- Keep all errors from user and handle on own. (file access issues, errors, etc…)
VB.NET Code to search hard drive in background multi-thread:
To create this project create a VB.NET project with the following:
- One Form (with name: Form1)
- One BackgroundWorker (with name: BackgroundWorker1)
Open code window for Form1. Delete all the code. Then paste our code from here, and your program is complete.
.
VB.NET Code to search hard drive in background multi-thread
[vb]
Imports System.ComponentModel
Imports System.IO
Imports System.Threading
Imports Microsoft.VisualBasic.Devices
Public Class Form1
Public path As String = "c:\"
Public fileList As New List(Of String)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
Me.BackColor = Color.Green
End Sub
Sub GetAllAccessibleFiles(path As String, filelist As List(Of String))
For Each file As String In Directory.GetFiles(path, "*.*")
Application.DoEvents()
filelist.Add(file)
Next
For Each dir As String In Directory.GetDirectories(path)
Application.DoEvents()
Try
GetAllAccessibleFiles(dir, filelist)
Catch ex As Exception
End Try
Next
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Application.DoEvents()
For Each drive In DriveInfo.GetDrives
Application.DoEvents()
GetAllAccessibleFiles(drive.ToString, fileList)
‘Convert List to string array if you want
‘Dim files As String() = fileList.ToArray
Next
Application.DoEvents()
Using sw As New System.IO.StreamWriter("c:\filelist.txt")
For Each s As String In fileList
Application.DoEvents()
‘write to file
‘
sw.WriteLine(s)
Next
sw.Flush() ”yeap I’m the sort of nerd that flushes it then closes it, just like my toilet. :-)
sw.Close()
End Using
End Sub
End Class
[/vb]
Related Videos:
Related Posts:
My little pony learning game in VB.NET
Animatic – Advanced WordPress Frontend Animator
Top Tools for Ethical hacking in 2020
FAQs(Opens in a new browser tab)
Disable Search in WordPress(Opens in a new browser tab)
New Raspberry Pi challenger promises 7x the speed at 2x the price(Opens in a new browser tab)
Cybersecurity Analyst (CSA+) Exam Study Guide
USB O.MG cable opens Wi-Fi to remote attacks(Opens in a new browser tab)
Reasons why website visitors stop reading before the end of your page(Opens in a new browser tab)
Python Basic String Operations(Opens in a new browser tab)
https://stackoverflow.com/questions/18022677/searching-a-drive-with-vb-net
https://www.vbforums.com/showthread.php?856813-Recursive-search-hard-drive-for-file-types