Files
Work/common/FINDDATA.CPP
2024-08-07 09:09:36 -04:00

56 lines
1.6 KiB
C++

#include <common/finddata.hpp>
void FindData::destroyFind(void)
{
if(INVALID_HANDLE_VALUE==mhFindHandle)return;
::FindClose(mhFindHandle);
mhFindHandle=INVALID_HANDLE_VALUE;
}
WORD FindData::findFirst(const String &searchFileName,DWORD searchAttributes)
{
destroyFind();
zeroInit();
if(searchFileName.isNull())return FALSE;
fileName(searchFileName);
attributes(searchAttributes);
if(INVALID_HANDLE_VALUE==(mhFindHandle=::FindFirstFile((LPSTR)searchFileName,&((WIN32_FIND_DATA&)*this))))return FALSE;
return TRUE;
}
void FindData::altFileName(String altFileName)
{
WORD nameLength(altFileName.length());
if(altFileName.isNull())return;
if(nameLength>=sizeof(WIN32_FIND_DATA::cAlternateFileName))altFileName.length(sizeof(WIN32_FIND_DATA::cAlternateFileName)-1);
::strcpy(WIN32_FIND_DATA::cAlternateFileName,(LPSTR)altFileName);
}
FindData &FindData::operator=(const FindData &someFindData)
{
attributes(someFindData.attributes());
creationTime(someFindData.creationTime());
lastAccessTime(someFindData.lastAccessTime());
lastModifyTime(someFindData.lastModifyTime());
sizeHigh(someFindData.sizeHigh());
sizeLow(someFindData.sizeLow());
fileName(someFindData.fileName());
altFileName(someFindData.altFileName());
return *this;
}
WORD FindData::operator==(const FindData &someFindData)const
{
return (attributes()==someFindData.attributes()&&
creationTime()==someFindData.creationTime()&&
lastAccessTime()==someFindData.lastAccessTime()&&
sizeHigh()==someFindData.sizeHigh()&&
fileName()==someFindData.fileName()&&
altFileName()==someFindData.altFileName());
}