Fileutil: Fix file size and data reading.
This commit is contained in:
@@ -60,7 +60,7 @@ FILETIME POSIX_to_FileTime(FileTime fileTime) {
|
|||||||
FileTime FileTime_Get(char *fileName) {
|
FileTime FileTime_Get(char *fileName) {
|
||||||
HANDLE hFile;
|
HANDLE hFile;
|
||||||
FILETIME ftCreate, ftAccess, ftWrite;
|
FILETIME ftCreate, ftAccess, ftWrite;
|
||||||
hFile = CreateFile(fileName, GENERIC_READ, FILE_SHARE_READ, NULL,
|
hFile = CreateFile(fileName, READ_CONTROL, FILE_SHARE_READ, NULL,
|
||||||
OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
|
OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
|
||||||
GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite);
|
GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite);
|
||||||
CloseHandle(hFile);
|
CloseHandle(hFile);
|
||||||
@@ -95,6 +95,50 @@ void FileTime_Set(char *fileName, FileTime t) {
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
long long File_GetSize(char *fileName) {
|
||||||
|
HANDLE hFile;
|
||||||
|
DWORD fSize;
|
||||||
|
hFile = CreateFile(fileName, READ_CONTROL, FILE_SHARE_READ, NULL,
|
||||||
|
OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
|
||||||
|
fSize = GetFileSize(hFile, NULL);
|
||||||
|
CloseHandle(hFile);
|
||||||
|
return (fSize);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
long long File_GetSize(char *fileName) {
|
||||||
|
struct stat fs;
|
||||||
|
lstat(fileName, &fs);
|
||||||
|
return (fs.st_size);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
void File_GetSizeAndTime(char *fileName, long long *size, FileTime *time) {
|
||||||
|
HANDLE hFile;
|
||||||
|
DWORD fSize;
|
||||||
|
FILETIME ftCreate, ftAccess, ftWrite;
|
||||||
|
hFile = CreateFile(fileName, READ_CONTROL, FILE_SHARE_READ, NULL,
|
||||||
|
OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
|
||||||
|
fSize = GetFileSize(hFile, NULL);
|
||||||
|
GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite);
|
||||||
|
CloseHandle(hFile);
|
||||||
|
*size = fSize;
|
||||||
|
*time = FileTime_to_POSIX(ftWrite);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
void File_GetSizeAndTime(char *fileName, long long *size, FileTime *time) {
|
||||||
|
struct stat fs;
|
||||||
|
lstat(fileName, &fs);
|
||||||
|
*size = fs.st_size;
|
||||||
|
*time = fs.st_mtime;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void FileTime_Print(FileTime fileTime) {
|
void FileTime_Print(FileTime fileTime) {
|
||||||
struct tm *tms;
|
struct tm *tms;
|
||||||
|
|
||||||
@@ -199,47 +243,6 @@ int File_IsFile(char *fileName) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
long long File_GetSize(char *fileName) {
|
|
||||||
HANDLE hFile;
|
|
||||||
DWORD fSize;
|
|
||||||
hFile = CreateFile(fileName, GENERIC_READ, FILE_SHARE_READ, NULL,
|
|
||||||
OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
|
|
||||||
GetFileSize(hFile, &fSize);
|
|
||||||
CloseHandle(hFile);
|
|
||||||
return (fSize);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
long long File_GetSize(char *fileName) {
|
|
||||||
struct stat fs;
|
|
||||||
lstat(fileName, &fs);
|
|
||||||
return (fs.st_size);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
void File_GetSizeAndTime(char *fileName, long long *size, FileTime *time) {
|
|
||||||
HANDLE hFile;
|
|
||||||
DWORD fSize;
|
|
||||||
FILETIME ftCreate, ftAccess, ftWrite;
|
|
||||||
hFile = CreateFile(fileName, GENERIC_READ, FILE_SHARE_READ, NULL,
|
|
||||||
OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
|
|
||||||
GetFileSize(hFile, &fSize);
|
|
||||||
GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite);
|
|
||||||
CloseHandle(hFile);
|
|
||||||
*size = fSize;
|
|
||||||
*time = FileTime_to_POSIX(ftWrite);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
void File_GetSizeAndTime(char *fileName, long long *size, FileTime *time) {
|
|
||||||
struct stat fs;
|
|
||||||
lstat(fileName, &fs);
|
|
||||||
*size = fs.st_size;
|
|
||||||
*time = fs.st_mtime;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ void FileTime_Print(FileTime t);
|
|||||||
#define MaxPath 4096
|
#define MaxPath 4096
|
||||||
#define MaxPathNodes 512
|
#define MaxPathNodes 512
|
||||||
|
|
||||||
|
long long File_GetSize(char *fileName);
|
||||||
|
|
||||||
|
void File_GetSizeAndTime(char *fileName, long long *size, FileTime *time);
|
||||||
|
|
||||||
void File_GetName(char *path, char *name);
|
void File_GetName(char *path, char *name);
|
||||||
|
|
||||||
int File_ExistsPath(char *path);
|
int File_ExistsPath(char *path);
|
||||||
@@ -24,10 +28,6 @@ int File_IsDirectory(char *path);
|
|||||||
|
|
||||||
int File_IsFile(char *path);
|
int File_IsFile(char *path);
|
||||||
|
|
||||||
long long File_GetSize(char *fileName);
|
|
||||||
|
|
||||||
void File_GetSizeAndTime(char *fileName, long long *size, FileTime *time);
|
|
||||||
|
|
||||||
int File_MakeDirectory(char *path);
|
int File_MakeDirectory(char *path);
|
||||||
|
|
||||||
void File_IterateDir(char *path,
|
void File_IterateDir(char *path,
|
||||||
|
|||||||
Reference in New Issue
Block a user