Search a file in a directory tree using the Imagehlp DLL

You can search a file in all the subdirectories of a given drive in VB using a recursive routine based on the Dir$ function, the FileSystemObject component, or the FindFirstFile/FindNextFile API functions. There is a fourth way you might want to try out, based on the SearchTreeForFile function embedded in the ImageHlp DLL. The following routine takes advantage of this API function:

Private Declare Function SearchTreeForFile Lib "imagehlp.dll" (ByVal sRootPath _    As String, ByVal InputPathName As String, ByVal OutputPathBuffer As String) _    As Boolean' search a file on directory subtree'' returns the complete path+name of the filename' or a null string if the filename hasn't been found' only the first occurrence of the file is returned'' ROOTDIR can be a drive root dir (e.g. "C:") or a subdir ("C:DOCS")Function SearchFileInDirTree(ByVal rootDir As String, ByVal Filename As String) _    As String    ' this is the max length for a filename    Dim buffer As String * 260    If SearchTreeForFile(rootDir, Filename, buffer) Then        ' a non-zero return value means success        SearchFileInDirTree = Left$(buffer, InStr(buffer, vbNullChar) - 1)    End IfEnd Function

Note that when you use the SearchTreeForFile API function your program must wait until the file is found or the entire hard disk has been scanned. For this reason you might want to display a warning to the end user, explaining that the search might take a long time. For this reason this routine is especially useful to quickly scan a smaller directory subtree, rather than an entire drive.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

The Latest

homes in the real estate industry

Exploring the Latest Tech Trends Impacting the Real Estate Industry

The real estate industry is changing thanks to the newest technological advancements. These new developments — from blockchain and AI to virtual reality and 3D printing — are poised to change how we buy and sell homes. Real estate brokers, buyers, sellers, wholesale real estate professionals, fix and flippers, and beyond may

man on floor with data

DevX Quick Guide to Data Ingestion

One of the biggest trends of the 21st century is the massive surge in internet usage. With major innovations such as smart technology, social media, and online shopping sites, the internet has become an essential part of everyday life for a large portion of the population. Due to this internet

payment via phone

7 Ways Technology Has Changed Traditional Payments

In today’s digital world, technology has changed how we make payments. From contactless cards to mobile wallets, it’s now easier to pay for goods and services without carrying cash or using a checkbook. This article will look at seven of the most significant ways technology has transformed traditional payment methods.