Don't delete files/folders with read-only attribute

This commit is contained in:
RocketRobz 2020-02-03 19:45:24 -07:00
parent 925917cca0
commit a168b92948

View File

@ -29,6 +29,7 @@
#include <dirent.h>
#include <nds.h>
#include <fat.h>
#include "main.h"
#include "date.h"
@ -388,8 +389,10 @@ void recRemove(DirEntry* entry, std::vector<DirEntry> dirContents) {
for (int i = 1; i < ((int)dirContents.size()); i++) {
entry = &dirContents.at(i);
if (entry->isDirectory) recRemove(entry, dirContents);
if (!(FAT_getAttr(entry->name.c_str()) & ATTR_READONLY)) {
remove(entry->name.c_str());
}
}
chdir ("..");
remove(startEntry->name.c_str());
}
@ -634,6 +637,19 @@ string browseForFile (void) {
swiWaitForVBlank();
if (pressed & KEY_A) {
consoleClear();
if (FAT_getAttr(entry->name.c_str()) & ATTR_READONLY) {
printf ("Failed deleting:\n");
printf (entry->name.c_str());
printf ("\n");
printf ("\n");
printf ("(<A> to continue)");
pressed = 0;
while (!(pressed & KEY_A)) {
scanKeys();
pressed = keysDown();
swiWaitForVBlank();
}
} else {
if (entry->isDirectory) {
printf ("Deleting folder, please wait...");
recRemove(entry, dirContents);
@ -649,6 +665,7 @@ string browseForFile (void) {
}
getDirectoryContents (dirContents);
fileOffset--;
}
pressed = 0;
break;
}