The CScanPath is designed for all developers who want to implement a scanning function for directory/subdirectory files and interact with each of them.
How It Works
When starting the scanning job through the CScanPath class, a separate thread search is created for all files in the directory tree structure. It executes the specified function for each of them. The class also gives you the possibility to get the total directory files’ numbers, and the total directory files’ sizes.
How to Use It
If you want to know the total directory files sizes or the total directory files numbers, you can use the following method:
- DWORD GetDirFilesNumbers( char * path )
- double GetDirFilesSizes( char * path )
where path is the directory to search for.
Now, to scan a directory and manipulate each file found, proceed like this:
- Declare a static function.
- Make the function to manipulate files found.
- Call the RunScan method.
static void MyFunction( char * file );
void MyFunction( char * file )
{
printf(“-> %s\n”, file);
}
CScanPath ScanPath;
ScanPath.RunScan( “c:\\windows”, MyFunction );
If you want to stop scanning for any reason, just do this:
ScanPath.StopScan();
That’s ALL!
Sample Code for Console Program
#include <windows.h>
#include “<stdio.h>”
#include “ScanPath.h”void MyFunction( char * file )
{
printf(“-> %s\n”, file );
}void main( int argc, char **argv )
{if( argc < 2 )
{
printf(“Usage : %s <path to scan>\n”, argv[0] );
ExitProcess(0);
}if( !SetCurrentDirectory( argv[1] ) )
{
printf(“Error : %s in not a valid directory !\n”, argv[1]);
ExitProcess(0);
}CScanPath Scan;
// the third argument means that the function doesn’t return
// until the scan ends
// this is FALSE by default.
Scan.RunScan( argv[1], MyFunction, TRUE );
}