Click here to Skip to main content
Click here to Skip to main content

Easy to use file finding dialog

By , 19 Mar 2001
Rate this:
Please Sign up or sign in to vote.
<!-- Link to demo file download -->
  • Download demo project - 21 Kb
  • <!-- Article image -->

    Sample Image - FindFileSearching.gif

    <!-- Add the rest of your HTML here -->

    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

    About the Author

    Chris Losinger
    Software Developer
    United States United States
    Chris Losinger is the president of Smaller Animals Software, Inc..

    Comments and Discussions

     
    QuestionWant to search the root folder and subfolders? Pinmemberchris1757-Mar-06 5:53 
    QuestionHow to use this code to find like Files Pinmemberchris17521-Feb-06 8:02 
    GeneralBackground thread Pinmembernewkie12-Jan-05 23:46 
    QuestionC:\RECYCLER folder? PinmemberAngus Comber28-Feb-04 4:42 
    AnswerRe: C:\RECYCLER folder? PinmemberDgMv20-Dec-05 6:30 
    QuestionCan it start it a separate thread? PinmemberChristopher Spiteri27-Nov-02 0:59 
    AnswerRe: Can it start it a separate thread? PinmemberChristopher Spiteri27-Nov-02 4:57 
    GeneralMatching file specs aren't found if they are in the root folder PinmemberMatthew House12-Apr-02 4:14 
    GeneralToo many backslashes in returned path PinmemberMike Eriksson16-Mar-01 5:13 
    GeneralRe: Too many backslashes in returned path PinmemberChris Losinger16-Mar-01 5:15 
    GeneralRe: Too many backslashes in returned path PinmemberMike Eriksson16-Mar-01 5:25 
    GeneralRe: Too many backslashes in returned path PinmemberChris Losinger16-Mar-01 5:27 
    GeneralFindFile doesn't start at all for me :o) PinsussMichael Kuelshammer12-Oct-00 6:25 
    GeneralRe: FindFile doesn't start at all for me :o) Pinsusschris losinger12-Oct-00 6:39 
    GeneralRe: FindFile doesn't start at all for me :o) PinsussMichael Kuelshammer15-Oct-00 23:58 
    GeneralMemory Leaks PinsussBrigg Thorp10-Jul-00 3:28 
    GeneralRe: Memory Leaks Pinsusschris losinger10-Jul-00 3:59 
    GeneralRe: Memory Leaks - are you sure? Pinsusschris losinger10-Jul-00 4:35 
    GeneralRe: Memory Leaks - are you sure? PinsussBrigg Thorp11-Jul-00 7:17 
    GeneralRe: Memory Leaks - Fixed Pinsusschris losinger11-Jul-00 10:55 
    GeneralTo Use the Windows Find Files dialog box PinsussBrian Hart7-Jul-00 20:27 
    GeneralRe: To Use the Windows Find Files dialog box PinsussBrian Hart7-Jul-00 20:32 
    GeneralRe: To Use the Windows Find Files dialog box PinsussPaul Selormey2-Aug-00 10:09 
    GeneralRe: To Use the Windows Find Files dialog box PinsussJason16-Oct-00 4:15 
    GeneralRe: To Use the Windows Find Files dialog box PinsussChris16-Oct-00 4:17 

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

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

    | Advertise | Privacy | Mobile
    Web03 | 2.8.140415.2 | Last Updated 20 Mar 2001
    Article Copyright 2000 by Chris Losinger
    Everything else Copyright © CodeProject, 1999-2014
    Terms of Use
    Layout: fixed | fluid