tested dir remove functionality
This commit is contained in:
@ -6,6 +6,7 @@
|
||||
#include "fsfw/memory/GenericFileSystemMessage.h"
|
||||
#include "fsfw/ipc/QueueFactory.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <fstream>
|
||||
#include <filesystem>
|
||||
|
||||
@ -163,7 +164,7 @@ ReturnValue_t FileSystemHandler::createFile(const char *repositoryPath, const ch
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
|
||||
ReturnValue_t FileSystemHandler::deleteFile(const char *repositoryPath, const char *filename,
|
||||
ReturnValue_t FileSystemHandler::removeFile(const char *repositoryPath, const char *filename,
|
||||
void *args) {
|
||||
std::string fullPath;
|
||||
bool useMountPrefix = true;
|
||||
@ -225,19 +226,30 @@ ReturnValue_t FileSystemHandler::removeDirectory(const char *repositoryPath,
|
||||
else {
|
||||
// Check error code. Most probably denied permissions because folder is not empty
|
||||
sif::warning << "FileSystemHandler::removeDirectory: Deleting directory failed with "
|
||||
"err" << err << std::endl;
|
||||
return GENERIC_FILE_ERROR;
|
||||
"code" << err.value() << ": " << strerror(err.value()) << std::endl;
|
||||
if(err.value() == ENOTEMPTY) {
|
||||
return DIRECTORY_NOT_EMPTY;
|
||||
}
|
||||
else {
|
||||
return GENERIC_FILE_ERROR;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(std::filesystem::remove_all(fullPath, err)) {
|
||||
sif::warning << "FileSystemHandler::removeDirectory: Deleting directory recursively "
|
||||
"failed with err" << err << std::endl;
|
||||
return HasReturnvaluesIF::RETURN_OK;
|
||||
}
|
||||
else {
|
||||
sif::warning << "FileSystemHandler::removeDirectory: Deleting directory failed with "
|
||||
"code" << err.value() << ": " << strerror(err.value()) << std::endl;
|
||||
// Check error code
|
||||
return GENERIC_FILE_ERROR;
|
||||
if(err.value() == ENOTEMPTY) {
|
||||
return DIRECTORY_NOT_EMPTY;
|
||||
}
|
||||
else {
|
||||
return GENERIC_FILE_ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user