|
|
| version 1.3, 2004/01/09 04:36:03 | version 1.4, 2004/01/10 17:24:01 |
|---|---|
| Line 162 UINT file_getsize(FILEH handle) { | Line 162 UINT file_getsize(FILEH handle) { |
| return(GetFileSize(handle, NULL)); | return(GetFileSize(handle, NULL)); |
| } | } |
| short file_getdatetime(FILEH handle, DOSDATE *dosdate, DOSTIME *dostime) { | static BOOL cnvdatetime(FILETIME *file, DOSDATE *dosdate, DOSTIME *dostime) { |
| FILETIME lastwrite; | FILETIME localtime; |
| FILETIME localwrite; | SYSTEMTIME systime; |
| SYSTEMTIME syswrite; | |
| if ((GetFileTime(handle, NULL, NULL, &lastwrite) == 0) || | if ((FileTimeToLocalFileTime(file, &localtime) == 0) || |
| (FileTimeToLocalFileTime(&lastwrite, &localwrite) == 0) || | (FileTimeToSystemTime(&localtime, &systime) == 0)) { |
| (FileTimeToSystemTime(&localwrite, &syswrite) == 0)) { | return(FAILURE); |
| return(-1); | |
| } | } |
| if (dosdate) { | if (dosdate) { |
| dosdate->year = (WORD)syswrite.wYear; | dosdate->year = (UINT16)systime.wYear; |
| dosdate->month = (BYTE)syswrite.wMonth; | dosdate->month = (UINT8)systime.wMonth; |
| dosdate->day = (BYTE)syswrite.wDay; | dosdate->day = (UINT8)systime.wDay; |
| } | } |
| if (dostime) { | if (dostime) { |
| dostime->hour = (BYTE)syswrite.wHour; | dostime->hour = (UINT8)systime.wHour; |
| dostime->minute = (BYTE)syswrite.wMinute; | dostime->minute = (UINT8)systime.wMinute; |
| dostime->second = (BYTE)syswrite.wSecond; | dostime->second = (UINT8)systime.wSecond; |
| } | |
| return(SUCCESS); | |
| } | |
| short file_getdatetime(FILEH handle, DOSDATE *dosdate, DOSTIME *dostime) { | |
| FILETIME lastwrite; | |
| if ((GetFileTime(handle, NULL, NULL, &lastwrite) == 0) || | |
| (cnvdatetime(&lastwrite, dosdate, dostime) != SUCCESS)) { | |
| return(-1); | |
| } | } |
| return(0); | return(0); |
| } | } |
| Line 262 FLISTH file_list1st(const char *dir, FLI | Line 271 FLISTH file_list1st(const char *dir, FLI |
| milsjis_ncpy(path, dir, sizeof(path)); | milsjis_ncpy(path, dir, sizeof(path)); |
| file_setseparator(path, sizeof(path)); | file_setseparator(path, sizeof(path)); |
| milsjis_ncat(path, "*.*", sizeof(path)); | milsjis_ncat(path, "*.*", sizeof(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)) { |
| 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) | #if defined(UNICODE) |
| WideCharToMultiByte(CP_ACP, 0, w32fd.cFileName, -1, | WideCharToMultiByte(CP_ACP, 0, w32fd.cFileName, -1, |
| fli->path, sizeof(fli->path), NULL, NULL); | fli->path, sizeof(fli->path), NULL, NULL); |
| #else | #else |
| milstr_ncpy(fli->path, w32fd.cFileName, sizeof(fli->path)); | milstr_ncpy(fli->path, w32fd.cFileName, sizeof(fli->path)); |
| TRACEOUT(("-> %s", w32fd.cFileName)); | |
| #endif | #endif |
| fli->size = w32fd.nFileSizeLow; | |
| fli->attr = w32fd.dwFileAttributes; | |
| } | } |
| return(hdl); | return(hdl); |
| } | } |
| Line 284 BOOL file_listnext(FLISTH hdl, FLINFO *f | Line 297 BOOL file_listnext(FLISTH hdl, FLINFO *f |
| return(FAILURE); | return(FAILURE); |
| } | } |
| if (fli) { | 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) | #if defined(UNICODE) |
| WideCharToMultiByte(CP_ACP, 0, w32fd.cFileName, -1, | WideCharToMultiByte(CP_ACP, 0, w32fd.cFileName, -1, |
| fli->path, sizeof(fli->path), NULL, NULL); | fli->path, sizeof(fli->path), NULL, NULL); |
| #else | #else |
| milstr_ncpy(fli->path, w32fd.cFileName, sizeof(fli->path)); | milstr_ncpy(fli->path, w32fd.cFileName, sizeof(fli->path)); |
| #endif | #endif |
| fli->size = w32fd.nFileSizeLow; | |
| fli->attr = w32fd.dwFileAttributes; | |
| } | } |
| return(SUCCESS); | return(SUCCESS); |
| } | } |