Solved

File Searching

Posted on 1998-03-11
7
191 Views
Last Modified: 2010-05-18
VC5.0:
How do i search and retrieve the path of a file  TEST.CPP ?  The drive and the directory which it sits in is unknown.


 
0
Comment
Question by:engllf
  • 3
  • 2
  • 2
7 Comments
 

Author Comment

by:engllf
ID: 1183378
Edited text of question
0
 

Expert Comment

by:mpewjg
ID: 1183379
Please try class CFileFind

FindFile() can begin the search.
GetFilePath() can fetch the found file's path name.
0
 

Expert Comment

by:mpewjg
ID: 1183380
CFileFind is an MFC class.  Are you working in MFC?
0
ScreenConnect 6.0 Free Trial

At ScreenConnect, partner feedback doesn't fall on deaf ears. We collected partner suggestions off of their virtual wish list and transformed them into one game-changing release: ScreenConnect 6.0. Explore all of the extras and enhancements for yourself!

 
LVL 22

Expert Comment

by:nietod
ID: 1183381
Prefer direct call to API.
0
 

Author Comment

by:engllf
ID: 1183382
I am working in MSVC.
But I prefer direct call to API.
I am trying not to rely to much on MFC.  

0
 

Author Comment

by:engllf
ID: 1183383
answer coming in a minute.
0
 
LVL 22

Accepted Solution

by:
nietod earned 50 total points
ID: 1183384
First you need a starting point for your search, possibly the root directory of a specified drive, or some other directory depending on you needs.  You will search that directory and if you find the file you are done.  If not you will find each sub-directory in the directory and search them recursively until one search succeeds.  

To search a directory for a file or for other directories use the FindFirstFile() and FindNextFile() API commands (there are also extended versions, that might be a little faster.)  

for a particular directory use FindFirstFile() to get information about the file and then enter a loop that checks the information to see if it is a the right file.  If it is, return true from your search procedure.  If not, use FindNextFile() and continue the loop until you find the file or FindNextFile(0 fails (the FindFirstFile() could also fail) indicating there are no more files.  In that run a second loop that is like the first but this time check the attributes of the files found to see which one are directories.  If a file is a directory call the search function recursively.  If it returns true, return true. If it returns false, continue the loop.  When this loop runs out of files, return false, indicating the file was not found in the directory or its sub-directories.

let me know if you need any details.
0

Featured Post

Are your AD admin tools letting you down?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show you some of the more useful Standard Template Library (STL) algorithms through the use of working examples.  You will learn about how these algorithms fit into the STL architecture, how they work with STL containers, and why t…
C++ Properties One feature missing from standard C++ that you will find in many other Object Oriented Programming languages is something called a Property (http://www.experts-exchange.com/Programming/Languages/CPP/A_3912-Object-Properties-in-C.ht…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question