diff options
| author | Soikk | 2025-06-13 15:24:41 +0200 |
|---|---|---|
| committer | Soikk | 2025-06-13 15:24:41 +0200 |
| commit | 2435603717c23074edb156249f7b736a42fa20a4 (patch) | |
| tree | cca83333cda42a30363ee6d8f7cdfb5b8c9a6f8f /files | |
| parent | dd02677ad827ab4362e43374658dfa21584a3256 (diff) | |
| download | soikk-libs-2435603717c23074edb156249f7b736a42fa20a4.tar.xz soikk-libs-2435603717c23074edb156249f7b736a42fa20a4.tar.zst | |
Added files.h and files.c
Diffstat (limited to 'files')
| -rw-r--r-- | files/files.c | 59 | ||||
| -rw-r--r-- | files/files.h | 19 |
2 files changed, 78 insertions, 0 deletions
diff --git a/files/files.c b/files/files.c new file mode 100644 index 0000000..badd542 --- /dev/null +++ b/files/files.c @@ -0,0 +1,59 @@ +#include "files.h" + + +int dir_exists(char *dirpath){ + struct stat st; + if(stat(dirpath, &st) == 0){ + return S_ISDIR(st.st_mode); + } + return 0; +} + +int file_exists(char *filepath){ + struct stat st; + if(stat(filepath, &st) == 0){ + return S_ISREG(st.st_mode); + } + return 0; +} + +int path_exists(char *path){ + return dir_exists(path) || file_exists(path); +} + +u64 get_fd_size(int fd){ + struct stat st; + if(fstat(fd, &st) == 0){ + return st.st_size; + } + return 0; +} + +u64 get_fp_size(FILE *fp){ + if(fp != NULL){ + return get_fd_size(fileno(fp)); + } + return 0; +} + +u64 get_file_size(char *filename){ + struct stat st; + if(stat(filename, &st) == 0){ + return st.st_size; + } + return 0; +} + +char *get_extension(char *filename){ + int len = 0, i = 0; + while(filename[len] != '\0') len++; + while(len-i > 0){ + if(filename[len-i-1] == '.') break; + i++; + } + if(i == 0 || i == len){ + return NULL; + } + return filename + len - i; +} + diff --git a/files/files.h b/files/files.h new file mode 100644 index 0000000..33fba80 --- /dev/null +++ b/files/files.h @@ -0,0 +1,19 @@ +#ifndef FILES_H +#define FILES_H + +#include <stdio.h> +#include <sys/stat.h> +#include "types/types.h" + + +int dir_exists(char *dirpath); +int file_exists(char *filepath); +int path_exists(char *path); + +u64 get_fd_size(int fd); +u64 get_fp_size(FILE *fp); +u64 get_file_size(char *filename); + +char *get_extension(char *filename); + +#endif |
