File Searching

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.


 
engllfAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

engllfAuthor Commented:
Edited text of question
0
mpewjgCommented:
Please try class CFileFind

FindFile() can begin the search.
GetFilePath() can fetch the found file's path name.
0
mpewjgCommented:
CFileFind is an MFC class.  Are you working in MFC?
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

nietodCommented:
Prefer direct call to API.
0
engllfAuthor Commented:
I am working in MSVC.
But I prefer direct call to API.
I am trying not to rely to much on MFC.  

0
engllfAuthor Commented:
answer coming in a minute.
0
nietodCommented:
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C++

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.