mirror of
https://github.com/eried/portapack-mayhem.git
synced 2025-01-24 13:41:29 -05:00
Display error message when trying to delete non-empty directory (#1321)
* Non-empty directory check * Non-empty directory check * Display error when attempting to delete non-empty directory * Clang Delete white-space that the friggin editor added * is_empty_directory * is_empty_directory * is_empty_directory * Now need to check if it's a directory first
This commit is contained in:
parent
411f6c0a34
commit
91c6e3fc30
@ -440,6 +440,11 @@ void FileManagerView::on_rename(std::string_view hint) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FileManagerView::on_delete() {
|
void FileManagerView::on_delete() {
|
||||||
|
if (is_directory(get_selected_full_path()) && !is_empty_directory(get_selected_full_path())) {
|
||||||
|
nav_.display_modal("Delete", "Directory not empty!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
auto name = get_selected_entry().path.filename().string();
|
auto name = get_selected_entry().path.filename().string();
|
||||||
nav_.push<ModalMessageView>(
|
nav_.push<ModalMessageView>(
|
||||||
"Delete", "Delete " + name + "\nAre you sure?", YESNO,
|
"Delete", "Delete " + name + "\nAre you sure?", YESNO,
|
||||||
|
@ -568,6 +568,17 @@ bool is_directory(const path& file_path) {
|
|||||||
return fr == FR_OK && is_directory(static_cast<file_status>(filinfo.fattrib));
|
return fr == FR_OK && is_directory(static_cast<file_status>(filinfo.fattrib));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_empty_directory(const path& file_path) {
|
||||||
|
DIR dir;
|
||||||
|
FILINFO filinfo;
|
||||||
|
|
||||||
|
if (!is_directory(file_path))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
auto result = f_findfirst(&dir, &filinfo, reinterpret_cast<const TCHAR*>(file_path.c_str()), (const TCHAR*)u"*");
|
||||||
|
return !((result == FR_OK) && (filinfo.fname[0] != (TCHAR)'\0'));
|
||||||
|
}
|
||||||
|
|
||||||
space_info space(const path& p) {
|
space_info space(const path& p) {
|
||||||
DWORD free_clusters{0};
|
DWORD free_clusters{0};
|
||||||
FATFS* fs;
|
FATFS* fs;
|
||||||
|
@ -248,6 +248,7 @@ bool is_directory(const file_status s);
|
|||||||
bool is_regular_file(const file_status s);
|
bool is_regular_file(const file_status s);
|
||||||
bool file_exists(const path& file_path);
|
bool file_exists(const path& file_path);
|
||||||
bool is_directory(const path& file_path);
|
bool is_directory(const path& file_path);
|
||||||
|
bool is_empty_directory(const path& file_path);
|
||||||
|
|
||||||
space_info space(const path& p);
|
space_info space(const path& p);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user