1
/***************************************************************
7
You can freely use, copy, modify, and redistribute
9
***************************************************************/
14
#include "..\wince.h" /* for wce_mbtowc */
17
int _stat(const char *filename, struct _stat *st)
21
DWORD dwSizeLow=0, dwSizeHigh=0, dwError=0;
25
// wfilename = wce_mbtowc(filename);
26
wfilename = wce_replaceRelativeDir(filename);
28
dwAttribute = GetFileAttributesW(wfilename);
29
if(dwAttribute==0xFFFFFFFF)
36
if((dwAttribute & FILE_ATTRIBUTE_DIRECTORY) != 0)
37
st->st_mode += S_IFDIR;
39
st->st_mode += S_IFREG;
48
h = FindFirstFileW(wfilename, &fd);
49
if(h == INVALID_HANDLE_VALUE)
51
if(wfilename[wcslen(wfilename)-1] == L'\\')
53
wfilename[wcslen(wfilename)-1] = L'\0';
54
h = FindFirstFileW(wfilename, &fd);
55
if(h == INVALID_HANDLE_VALUE)
68
/* FILETIME -> time_t */
69
st->st_atime = wce_FILETIME2time_t(&fd.ftLastAccessTime);
70
st->st_mtime = wce_FILETIME2time_t(&fd.ftLastWriteTime);
71
st->st_ctime = wce_FILETIME2time_t(&fd.ftCreationTime);
72
st->st_size = fd.nFileSizeLow;
79
int fstat(int file, struct stat *sbuf)
81
/* GetFileSize & GetFileTime */
83
FILETIME ctime, atime, mtime;
85
dwSize = GetFileSize( (HANDLE)file, NULL );
86
if( dwSize == 0xFFFFFFFF )
89
sbuf->st_size = dwSize;
92
sbuf->st_mode = _S_IFREG;
95
GetFileTime( (HANDLE)file, &ctime, &atime, &mtime );
96
sbuf->st_ctime = wce_FILETIME2time_t(&ctime);
97
sbuf->st_atime = wce_FILETIME2time_t(&atime);
98
sbuf->st_mtime = wce_FILETIME2time_t(&mtime);