|
|
| version 1.4, 2004/01/10 17:24:01 | version 1.6, 2004/01/12 08:01:00 |
|---|---|
| Line 262 short file_attr_c(const char *path) { | Line 262 short file_attr_c(const char *path) { |
| } | } |
| static BOOL setflist(WIN32_FIND_DATA *w32fd, FLINFO *fli) { | |
| #if !defined(_WIN32_WCE) | |
| if ((w32fd->dwFileAttributes & FILEATTR_DIRECTORY) && | |
| ((!file_cmpname(w32fd->cFileName, ".")) || | |
| (!file_cmpname(w32fd->cFileName, "..")))) { | |
| return(FAILURE); | |
| } | |
| #endif | |
| fli->caps = FLICAPS_SIZE | FLICAPS_ATTR | FLICAPS_DATE | FLICAPS_TIME; | |
| fli->size = w32fd->nFileSizeLow; | |
| fli->attr = w32fd->dwFileAttributes; | |
| cnvdatetime(&w32fd->ftLastWriteTime, &fli->date, &fli->time); | |
| #if defined(UNICODE) | |
| WideCharToMultiByte(CP_ACP, 0, w32fd->cFileName, -1, | |
| fli->path, sizeof(fli->path), NULL, NULL); | |
| #else | |
| milstr_ncpy(fli->path, w32fd->cFileName, sizeof(fli->path)); | |
| #endif | |
| return(SUCCESS); | |
| } | |
| FLISTH file_list1st(const char *dir, FLINFO *fli) { | FLISTH file_list1st(const char *dir, FLINFO *fli) { |
| char path[MAX_PATH]; | char path[MAX_PATH]; |
| Line 273 FLISTH file_list1st(const char *dir, FLI | Line 295 FLISTH file_list1st(const char *dir, FLI |
| milsjis_ncat(path, "*.*", sizeof(path)); | milsjis_ncat(path, "*.*", sizeof(path)); |
| TRACEOUT(("file_list1st %s", path)); | TRACEOUT(("file_list1st %s", path)); |
| hdl = FindFirstFile_A(path, &w32fd); | hdl = FindFirstFile_A(path, &w32fd); |
| if ((hdl != INVALID_HANDLE_VALUE) && (fli)) { | if (hdl != INVALID_HANDLE_VALUE) { |
| fli->caps = FLICAPS_SIZE | FLICAPS_ATTR | FLICAPS_DATE | FLICAPS_TIME; | do { |
| fli->size = w32fd.nFileSizeLow; | if (setflist(&w32fd, fli) == SUCCESS) { |
| fli->attr = w32fd.dwFileAttributes; | return(hdl); |
| cnvdatetime(&w32fd.ftLastWriteTime, &fli->date, &fli->time); | } |
| #if defined(UNICODE) | } while(FindNextFile(hdl, &w32fd)); |
| WideCharToMultiByte(CP_ACP, 0, w32fd.cFileName, -1, | FindClose(hdl); |
| fli->path, sizeof(fli->path), NULL, NULL); | |
| #else | |
| milstr_ncpy(fli->path, w32fd.cFileName, sizeof(fli->path)); | |
| TRACEOUT(("-> %s", w32fd.cFileName)); | |
| #endif | |
| } | } |
| return(hdl); | return(FLISTH_INVALID); |
| } | } |
| BOOL file_listnext(FLISTH hdl, FLINFO *fli) { | BOOL file_listnext(FLISTH hdl, FLINFO *fli) { |
| WIN32_FIND_DATA w32fd; | WIN32_FIND_DATA w32fd; |
| if (!FindNextFile(hdl, &w32fd)) { | while(FindNextFile(hdl, &w32fd)) { |
| return(FAILURE); | if (setflist(&w32fd, fli) == SUCCESS) { |
| } | return(SUCCESS); |
| if (fli) { | } |
| fli->caps = FLICAPS_SIZE | FLICAPS_ATTR | FLICAPS_DATE | FLICAPS_TIME; | |
| fli->size = w32fd.nFileSizeLow; | |
| fli->attr = w32fd.dwFileAttributes; | |
| cnvdatetime(&w32fd.ftLastWriteTime, &fli->date, &fli->time); | |
| #if defined(UNICODE) | |
| WideCharToMultiByte(CP_ACP, 0, w32fd.cFileName, -1, | |
| fli->path, sizeof(fli->path), NULL, NULL); | |
| #else | |
| milstr_ncpy(fli->path, w32fd.cFileName, sizeof(fli->path)); | |
| #endif | |
| } | } |
| return(SUCCESS); | return(FAILURE); |
| } | } |
| void file_listclose(FLISTH hdl) { | void file_listclose(FLISTH hdl) { |