mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-11-22 20:43:07 +00:00
[FL-3327] Storage: common_rename is now POSIX compliant (#2693)
* Storage: common_rename is now POSIX compliant * storage: check for success on storage_common_remove in file rename --------- Co-authored-by: hedger <hedger@nanode.su>
This commit is contained in:
parent
a821a2fcc0
commit
711f0fef40
2 changed files with 11 additions and 2 deletions
|
@ -226,7 +226,7 @@ FS_Error storage_common_stat(Storage* storage, const char* path, FileInfo* filei
|
|||
*/
|
||||
FS_Error storage_common_remove(Storage* storage, const char* path);
|
||||
|
||||
/** Renames file/directory, file/directory must not be open
|
||||
/** Renames file/directory, file/directory must not be open. Will overwrite existing file.
|
||||
* @param app pointer to the api
|
||||
* @param old_path old path
|
||||
* @param new_path new path
|
||||
|
|
|
@ -422,7 +422,16 @@ FS_Error storage_common_remove(Storage* storage, const char* path) {
|
|||
}
|
||||
|
||||
FS_Error storage_common_rename(Storage* storage, const char* old_path, const char* new_path) {
|
||||
FS_Error error = storage_common_copy(storage, old_path, new_path);
|
||||
FS_Error error;
|
||||
|
||||
if(storage_file_exists(storage, new_path)) {
|
||||
error = storage_common_remove(storage, new_path);
|
||||
if(error != FSE_OK) {
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
error = storage_common_copy(storage, old_path, new_path);
|
||||
if(error == FSE_OK) {
|
||||
if(!storage_simply_remove_recursive(storage, old_path)) {
|
||||
error = FSE_INTERNAL;
|
||||
|
|
Loading…
Reference in a new issue