9 DIR *opendir (const char * a_dir
)
13 DIR* dd_dir
= (DIR*) malloc (sizeof(DIR));
15 char *c_dir
= malloc (strlen(a_dir
) + 4);
16 strcpy (c_dir
, a_dir
);
17 strcat (c_dir
, "\\*");
19 dd_dir
->d_handle
= FindFirstFile (c_dir
, &wfd
);
20 if (dd_dir
->d_handle
== INVALID_HANDLE_VALUE
) {
23 case ERROR_NO_MORE_FILES
:
24 case ERROR_FILE_NOT_FOUND
:
25 case ERROR_PATH_NOT_FOUND
:
28 case ERROR_NOT_ENOUGH_MEMORY
:
38 dd_dir
->d_attr
= (wfd
.dwFileAttributes
== FILE_ATTRIBUTE_NORMAL
)
39 ? 0 : wfd
.dwFileAttributes
;
41 dd_dir
->d_time
= dd_dir
->d_date
= 10;
42 dd_dir
->d_size
= wfd
.nFileSizeLow
;
43 strcpy (dd_dir
->d_name
, wfd
.cFileName
);
50 DIR *readdir( DIR * dd_dir
)
55 if (dd_dir
->d_first
) {
60 if(!FindNextFile (dd_dir
->d_handle
, &wfd
)) {
63 case ERROR_NO_MORE_FILES
:
64 case ERROR_FILE_NOT_FOUND
:
65 case ERROR_PATH_NOT_FOUND
:
68 case ERROR_NOT_ENOUGH_MEMORY
:
77 dd_dir
->d_attr
= (wfd
.dwFileAttributes
== FILE_ATTRIBUTE_NORMAL
)
78 ? 0 : wfd
.dwFileAttributes
;
80 dd_dir
->d_time
= dd_dir
->d_date
= 10;
81 dd_dir
->d_size
= wfd
.nFileSizeLow
;
82 strcpy (dd_dir
->d_name
, wfd
.cFileName
);
86 int closedir (DIR *dd_dir
)
88 FindClose(dd_dir
->d_handle
);