SOL9 2.0 Class: FileFinder

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * 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;
    }

};

}



Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.