[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
	 Sergey Gavrilov
						Sergey Gavrilov