| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #include "sequential_file.h"
- char* sequential_file_resolve_path(
- Storage* storage,
- const char* dir,
- const char* prefix,
- const char* extension) {
- if(storage == NULL || dir == NULL || prefix == NULL || extension == NULL) {
- return NULL;
- }
- char file_path[256];
- int file_index = 0;
- do {
- if(snprintf(
- file_path, sizeof(file_path), "%s/%s_%d.%s", dir, prefix, file_index, extension) <
- 0) {
- return NULL;
- }
- file_index++;
- } while(storage_file_exists(storage, file_path));
- return strdup(file_path);
- }
- bool sequential_file_open(
- Storage* storage,
- File* file,
- const char* dir,
- const char* prefix,
- const char* extension) {
- if(storage == NULL || file == NULL || dir == NULL || prefix == NULL || extension == NULL) {
- return false;
- }
- char* file_path = sequential_file_resolve_path(storage, dir, prefix, extension);
- if(file_path == NULL) {
- return false;
- }
- bool success = storage_file_open(file, file_path, FSAM_WRITE, FSOM_CREATE_ALWAYS);
- free(file_path);
- return success;
- }
|