Fix file browser failing to navigate into subdirectories with non-ASCII names

- Enable UTF-8 long file names in SdFat (USE_UTF8_LONG_NAMES=1)
- Add directory validation before iterating files
- Add rewindDirectory() call for stability
This commit is contained in:
Eunchurn Park 2025-12-31 02:23:10 +09:00
parent 941643cf97
commit 4d28b02303
No known key found for this signature in database
GPG Key ID: 29D94D9C697E3F92
2 changed files with 10 additions and 0 deletions

View File

@ -26,6 +26,8 @@ build_flags =
-DXML_GE=0
-DXML_CONTEXT_BYTES=1024
-std=c++2a
# Enable UTF-8 long file names in SdFat
-DUSE_UTF8_LONG_NAMES=1
; Board configuration
board_build.flash_mode = dio

View File

@ -30,7 +30,15 @@ void FileSelectionActivity::taskTrampoline(void* param) {
void FileSelectionActivity::loadFiles() {
files.clear();
selectorIndex = 0;
auto root = SdMan.open(basepath.c_str());
if (!root || !root.isDirectory()) {
if (root) root.close();
return;
}
root.rewindDirectory();
char name[128];
for (auto file = root.openNextFile(); file; file = root.openNextFile()) {
file.getName(name, sizeof(name));