/*
* FileFinder.h
* Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
*/
// SOL++2000
#pragma once
#include <sol\Object.h>
typedef WIN32_FIND_DATA FindData;
namespace SOL {
class FileFinder :public Object{
private:
HANDLE hf;
const TCHAR* name;
public:
FileFinder(const TCHAR* dir)
{
name = dir;
hf = INVALID_HANDLE_VALUE;
}
public:
~FileFinder()
{
if (hf != INVALID_HANDLE_VALUE) {
::FindClose(hf);
}
}
public:
BOOL getFirst(FindData* fdata)
{
BOOL rc = FALSE;
if (hf != INVALID_HANDLE_VALUE) {
::FindClose(hf);
}
hf = ::FindFirstFile(name, fdata);
if (hf != INVALID_HANDLE_VALUE) {
rc = TRUE;
}
return rc;
}
public:
BOOL getNext(FindData* fdata)
{
BOOL rc = FALSE;
if (hf == INVALID_HANDLE_VALUE) {
return rc;
}
rc = ::FindNextFile(hf, fdata);
if (rc == FALSE) {
::FindClose(hf);
hf = INVALID_HANDLE_VALUE;
}
return rc;
}
};
}
|