Easy to use file finding dialog






3.63/5 (5 votes)
Jul 6, 2000

159892

1134
An easy to use multi-threaded dialog class that will search disks for files. Similar to Explorer's "Find Files of Folders" tool.
Introduction
Because we couldn't find out how to use the Windows "Find Files or Folders" dialog in our own app, and we needed to be able to retrieve a list of the files that were found in our app (which I don't think the Windows dialog even allows you to do), we wrote our own.
CFindFileDlg
is a simple dialog class that you can use to search hard drives (or floppy, or network, or CDROM drives) for files. It supports wildcards, and recursive folder searching, allows you to end the search after the first file is found, comes standard with a cancel button, simple animated icon and is fully multi-threaded.
Integrating CFindFileDlg into your own application
-
Add these files to your project:
- FileFindDlg.cpp, FileFindDlg.h
- FileFinder.cpp, FileFinder.h
- Copy the IDD_FIND_FILE dialog from the demo resource file to your project
- Copy the 12 animation icons (IDI_ICON1 -> IDI_ICON12) from the demo resource to your project
- #include "FindFileDlg.h" in the file where you want to use the dialog.
Using CFindFileDlg
// declare a search dialog CFindFileDlg dlg; dlg.m_csRootFolder = "C:\\"; // root folder of search dlg.m_csFindFile = "file.ext"; // file to search for dlg.m_bRecurse = true; // search subfolders dlg.m_bFindSingleFile = false; // find multiple files // these next three options aren't strictly necessary here, because // we've already specified a root folder. if we left the root folder // blank (""), the code will search drives A through Z. // // the options below allow you to exclude certain types of drives dlg.m_bSearchNetworkDrives = false; // ignore network drives dlg.m_bSearchRemovableDrives = false; // ignore removable drives dlg.m_bSearchCDROMDrives = false; // ignore CD-ROM drives // do it. int nResponse = dlg.DoModal(); // done if (nResponse == IDOK) { // success!!! // dlg.m_csaFoundFiles contains the files that matched our search criteria } else if (nResponse == IDCANCEL) { // operation failed or was cancelled }
History
20 Mar 2001 - udpated zip