Click here to Skip to main content
15,888,116 members
Articles / Desktop Programming / MFC
Article

Easy to use file finding dialog

Rate me:
Please Sign up or sign in to vote.
3.63/5 (5 votes)
19 Mar 2001 158K   1.1K   30   29
An easy to use multi-threaded dialog class that will search disks for files. Similar to Explorer's "Find Files of Folders" tool.
  • Download demo project - 21 Kb
  • Sample Image - FindFileSearching.gif

    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

    1. Add these files to your project:
      • FileFindDlg.cpp, FileFindDlg.h
      • FileFinder.cpp, FileFinder.h
    2. Copy the IDD_FIND_FILE dialog from the demo resource file to your project
    3. Copy the 12 animation icons (IDI_ICON1 -> IDI_ICON12) from the demo resource to your project
    4. #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

    License

    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here


    Written By
    Software Developer
    United States United States
    Chris Losinger was the president of Smaller Animals Software, Inc. (which no longer exists).

    Comments and Discussions

     
    GeneralRe: To Use the Windows Find Files dialog box Pin
    jason273116-Oct-00 4:18
    jason273116-Oct-00 4:18 
    GeneralRe: To Use the Windows Find Files dialog box Pin
    Chris Losinger7-Jul-00 20:36
    professionalChris Losinger7-Jul-00 20:36 
    GeneralTo Use the Windows Find Files dialog box Pin
    Brian Hart7-Jul-00 20:25
    Brian Hart7-Jul-00 20:25 
    GeneralRe: To Use the Windows Find Files dialog box Pin
    Brian Hart7-Jul-00 20:30
    Brian Hart7-Jul-00 20:30 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.