diff --git a/Marlin/src/lcd/anycubic_touchscreen.cpp b/Marlin/src/lcd/anycubic_touchscreen.cpp index 52e67cfc..96e2f6d9 100755 --- a/Marlin/src/lcd/anycubic_touchscreen.cpp +++ b/Marlin/src/lcd/anycubic_touchscreen.cpp @@ -599,6 +599,7 @@ void AnycubicTouchscreenClass::Ls() card.selectFileByIndex(cnt - 1); bool hasInvalidCharacter = false; + for (unsigned char currentChar = 0; currentChar < strlen(card.longFilename); currentChar++) if (!isPrintable(card.longFilename[currentChar])) { @@ -606,6 +607,7 @@ void AnycubicTouchscreenClass::Ls() break; } + if (card.flag.filenameIsDir) { if(hasInvalidCharacter) @@ -621,7 +623,7 @@ void AnycubicTouchscreenClass::Ls() else { ANYCUBIC_SERIAL_PROTOCOLPGM("/"); - ANYCUBIC_SERIAL_PROTOCOLLN(card.longFilename); + ANYCUBIC_SERIAL_PROTOCOLLN(card.filename); ANYCUBIC_SERIAL_PROTOCOLPGM("/"); ANYCUBIC_SERIAL_PROTOCOLLN(card.longFilename); SERIAL_ECHO(cnt); @@ -640,7 +642,7 @@ void AnycubicTouchscreenClass::Ls() } else { - ANYCUBIC_SERIAL_PROTOCOLLN(card.longFilename); + ANYCUBIC_SERIAL_PROTOCOLLN(card.filename); ANYCUBIC_SERIAL_PROTOCOLLN(card.longFilename); SERIAL_ECHO(cnt); SERIAL_ECHOLN(card.longFilename);