tested dir remove functionality

This commit is contained in:
2021-07-19 19:21:34 +02:00
committed by Robin Mueller
parent 4e05b396c4
commit 81ac5a3b2c
5 changed files with 109 additions and 18 deletions

View File

@ -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;
}
}
}