|
@@ -629,7 +629,7 @@ void CardReader::getfilename(uint16_t nr, const char * const match/*=nullptr*/)
|
629
|
629
|
lsDive(nullptr, workDir, match);
|
630
|
630
|
}
|
631
|
631
|
|
632
|
|
-uint16_t CardReader::getnrfilenames() {
|
|
632
|
+uint16_t CardReader::countFilesInWorkDir() {
|
633
|
633
|
lsAction = LS_Count;
|
634
|
634
|
nrFiles = 0;
|
635
|
635
|
workDir.rewind();
|
|
@@ -707,6 +707,7 @@ void CardReader::chdir(const char * relpath) {
|
707
|
707
|
|
708
|
708
|
if (newDir.open(parent, relpath, O_READ)) {
|
709
|
709
|
workDir = newDir;
|
|
710
|
+ flag.workDirIsRoot = false;
|
710
|
711
|
if (workDirDepth < MAX_DIR_DEPTH)
|
711
|
712
|
workDirParents[workDirDepth++] = workDir;
|
712
|
713
|
#if ENABLED(SDCARD_SORT_ALPHA)
|
|
@@ -726,14 +727,13 @@ int8_t CardReader::updir() {
|
726
|
727
|
presort();
|
727
|
728
|
#endif
|
728
|
729
|
}
|
|
730
|
+ if (!workDirDepth) flag.workDirIsRoot = true;
|
729
|
731
|
return workDirDepth;
|
730
|
732
|
}
|
731
|
733
|
|
732
|
734
|
void CardReader::setroot() {
|
733
|
|
- /*if (!workDir.openRoot(&volume)) {
|
734
|
|
- SERIAL_ECHOLNPGM(MSG_SD_WORKDIR_FAIL);
|
735
|
|
- }*/
|
736
|
735
|
workDir = root;
|
|
736
|
+ flag.workDirIsRoot = true;
|
737
|
737
|
#if ENABLED(SDCARD_SORT_ALPHA)
|
738
|
738
|
presort();
|
739
|
739
|
#endif
|
|
@@ -801,7 +801,7 @@ void CardReader::setroot() {
|
801
|
801
|
#endif
|
802
|
802
|
|
803
|
803
|
// If there are files, sort up to the limit
|
804
|
|
- uint16_t fileCnt = getnrfilenames();
|
|
804
|
+ uint16_t fileCnt = countFilesInWorkDir();
|
805
|
805
|
if (fileCnt > 0) {
|
806
|
806
|
|
807
|
807
|
// Never sort more than the max allowed
|
|
@@ -981,7 +981,7 @@ uint16_t CardReader::get_num_Files() {
|
981
|
981
|
#if ENABLED(SDCARD_SORT_ALPHA) && SDSORT_USES_RAM && SDSORT_CACHE_NAMES
|
982
|
982
|
nrFiles // no need to access the SD card for filenames
|
983
|
983
|
#else
|
984
|
|
- getnrfilenames()
|
|
984
|
+ countFilesInWorkDir()
|
985
|
985
|
#endif
|
986
|
986
|
;
|
987
|
987
|
}
|