[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
@ -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);
|
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 app pointer to the api
|
||||||
* @param old_path old path
|
* @param old_path old path
|
||||||
* @param new_path new 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 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(error == FSE_OK) {
|
||||||
if(!storage_simply_remove_recursive(storage, old_path)) {
|
if(!storage_simply_remove_recursive(storage, old_path)) {
|
||||||
error = FSE_INTERNAL;
|
error = FSE_INTERNAL;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user