#pragma once
#include <stdint.h>
#include <string>
#if !defined(_WIN32)
#include <sys/types.h>
#include <sys/stat.h>
#endif
extern bool BCreateDirectoryRecursive( const char *pchPath );
extern bool BCreateDirectory( const char *pchPath );
#if !defined( VRCORE_NO_PLATFORM )
#include <vrcore/platform.h>
typedef void *HMDHANDLE;
class CDirIterator
{
public:
CDirIterator( const char *pchPath, const char *pchPattern );
~CDirIterator();
bool IsValid() const;
bool BNextFile();
std::string CurrentFileName();
int64_t CurrentFileLength() const;
int64_t CurrentFileCreateTime() const;
int64_t CurrentFileWriteTime() const;
bool BCurrentIsDir() const;
bool BCurrentIsHidden() const;
bool BCurrentIsReadOnly() const;
bool BCurrentIsSystem() const;
bool BCurrentIsMarkedForArchive() const;
private:
void Init( const std::string &sPathAndPattern );
bool BValidFilename();
bool m_bNoFiles, m_bUsedFirstFile;
#if defined( _WIN32 )
HMDHANDLE m_hFind;
struct _WIN32_FIND_DATAW *m_pFindData;
std::string m_sFilename;
#else
int64_t m_hFind;
struct _finddata_t *m_pFindData;
#endif
};
#endif