82 lines
2.1 KiB
C
82 lines
2.1 KiB
C
/****************************************************/
|
|
/* */
|
|
/* For Win32 that lacks Unix direct support. */
|
|
/* - avoids including "windows.h" */
|
|
/* */
|
|
/* Copyright (c) 2002 John Popplewell */
|
|
/* john@johnnypops.demon.co.uk */
|
|
/* */
|
|
/****************************************************/
|
|
/* $Id$ */
|
|
|
|
typedef long BOOL;
|
|
typedef unsigned int DWORD;
|
|
typedef wchar_t TCHAR;
|
|
typedef void* HANDLE;
|
|
|
|
#define MAX_PATH 256
|
|
#define INVALID_HANDLE_VALUE ((HANDLE)(-1))
|
|
#define WINAPI __stdcall
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwLowDateTime;
|
|
DWORD dwHighDateTime;
|
|
} FILETIME;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwFileAttributes;
|
|
FILETIME ftCreationTime;
|
|
FILETIME ftLastAccessTime;
|
|
FILETIME ftLastWriteTime;
|
|
DWORD nFileSizeHigh;
|
|
DWORD nFileSizeLow;
|
|
DWORD dwReserved0;
|
|
DWORD dwReserved1;
|
|
TCHAR cFileName[ MAX_PATH ];
|
|
TCHAR cAlternateFileName[ 14 ];
|
|
} WIN32_FIND_DATA;
|
|
|
|
|
|
#define FindFirstFile FindFirstFileA
|
|
#define FindNextFile FindNextFileA
|
|
#define FindClose FindClose
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern HANDLE WINAPI FindFirstFile( const char*, WIN32_FIND_DATA* );
|
|
extern BOOL WINAPI FindNextFile( HANDLE, WIN32_FIND_DATA* );
|
|
extern BOOL WINAPI FindClose( HANDLE );
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
|
|
struct dirent
|
|
{
|
|
char d_name[MAX_PATH];
|
|
};
|
|
|
|
|
|
typedef struct
|
|
{
|
|
WIN32_FIND_DATA wfd;
|
|
HANDLE hFind;
|
|
struct dirent de;
|
|
} DIR;
|
|
|
|
|
|
extern DIR *opendir(const char *pSpec);
|
|
extern void closedir(DIR *pDir);
|
|
extern struct dirent *readdir(struct DIR *pDir);
|
|
|
|
typedef int (*selectCB)(const struct dirent *);
|
|
typedef int (*comparCB)(const void*, const void*);
|
|
|
|
extern int alphasort( const void *a, const void *b );
|
|
extern int scandir( const char *dir, struct dirent ***namelist, selectCB select, comparCB compar);
|