Microoptimization scanning the filesystem

This commit is contained in:
2014-12-04 00:10:57 +01:00
parent 2106141b0f
commit 46a8830190
5 changed files with 91 additions and 63 deletions

View File

@@ -77,18 +77,18 @@ void FileTime_Set(char *fileName, FileTime fileTime) {
#else
FileTime FileTime_Get(char *filename) {
FileTime FileTime_Get(char *fileName) {
struct stat fs;
lstat(filename, &fs);
lstat(fileName, &fs);
return (fs.st_mtime);
}
void FileTime_Set(char *filename, FileTime t) {
void FileTime_Set(char *fileName, FileTime t) {
struct utimbuf utb;
utb.actime = t;
utb.modtime = t;
utime(filename, &utb);
utime(fileName, &utb);
}
#endif
@@ -137,9 +137,9 @@ int File_ExistsPath(char *path) {
}
return (1);
}
int File_IsDirectory(char *dir) {
int File_IsDirectory(char *fileName) {
unsigned rc;
rc = GetFileAttributes(dir);
rc = GetFileAttributes(fileName);
if (rc == INVALID_FILE_ATTRIBUTES ) {
return (0);
@@ -149,9 +149,9 @@ int File_IsDirectory(char *dir) {
}
return (0);
}
int File_IsFile(char *fichero) {
int File_IsFile(char *fileName) {
unsigned rc;
rc = GetFileAttributes(fichero);
rc = GetFileAttributes(fileName);
if (rc == INVALID_FILE_ATTRIBUTES ) {
return (0);
@@ -171,10 +171,10 @@ int File_ExistsPath(char *path) {
}
return (1);
}
int File_IsDirectory(char *dir) {
int File_IsDirectory(char *fileName) {
struct stat info;
if (lstat(dir, &info) == -1) {
if (lstat(fileName, &info) == -1) {
return (0);
}
if (S_ISDIR(info.st_mode)) {
@@ -182,10 +182,10 @@ int File_IsDirectory(char *dir) {
}
return (0);
}
int File_IsFile(char *fichero) {
int File_IsFile(char *fileName) {
struct stat info;
if (lstat(fichero, &info) == -1) {
if (lstat(fileName, &info) == -1) {
return (0);
}
if (S_ISDIR(info.st_mode)) {
@@ -195,19 +195,50 @@ int File_IsFile(char *fichero) {
}
#endif
long long File_GetSize(char *file) {
FILE *f;
long long tamanho;
f = fopen(file, "rb");
if (!f)
return (-1);
fseek(f, 0, SEEK_END);
tamanho = ftell(f);
fclose(f);
return (tamanho);
#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
#ifdef WIN32
int File_MakeDirectory(char *path) {