00001
00002
00003
00004 #include <string.h>
00005 #include <windows.h>
00006 #include <ODIR.H>
00007 #include <OMISC.H>
00008
00009
00010
00011 static int sort_file_function( const void *a, const void *b );
00012
00013
00014
00015 Directory::Directory() : DynArray( sizeof(FileInfo), 20 ) {
00016 }
00017
00018
00019
00020
00030
00031 FileInfo fileInfo;
00032 WIN32_FIND_DATA findData;
00033
00034
00035
00036 HANDLE findHandle = FindFirstFile( fileSpec, &findData );
00037
00038 while(findHandle!=INVALID_HANDLE_VALUE) {
00039
00040 m.extract_file_name( fileInfo.name, findData.cFileName );
00041
00042 fileInfo.size = findData.nFileSizeLow;
00043 fileInfo.time = findData.ftLastWriteTime;
00044
00045 linkin( &fileInfo );
00046
00047 if( !FindNextFile( findHandle, &findData ) )
00048 break;
00049 }
00050
00051 FindClose(findHandle);
00052
00053
00054
00055 if( sortName )
00056 quick_sort( sort_file_function );
00057
00058 return size();
00059 }
00060
00061
00062
00063
00065
00066 return strcmpi( ((FileInfo*)a)->name, ((FileInfo*)b)->name );
00067 }
00068
00069