File.getFilename() in Arduino?

File.getFilename() in Arduino?

本文关键字:Arduino in getFilename File      更新时间:2023-10-16

UPDATE:
没有getfilename(),但有name()函数!


我正在尝试制作一个简单的程序,将所有文件名存储在字符串数组中,然后在LCD中显示。代码:

String* list(File root, int len) {
    if (!root.isDirectory()) return NULL;
    String files[50];
    int i = 0;
    while (true) {
        File f = root.openNextFile();
        if (i < 50) files[i] = f.getFilename();
        f.close();
        i++;
    }
    len = i;
    root.close();
    return files;
}

要在LCD中显示的代码:

void displayToLCD(String* files, int len) {
    lcd.clear();
    lcd.home();
    lcd.print("Files on SD:");
    for (int i = 0; i < len; i++) {
        lcd.setCursor(0, 1);
        lcd.print(files[i]);
        delay(1000);
    }
    lcd.clear();
    lcd.home();
}

但问题是File类没有"getFilename()"函数。有什么方法可以得到文件名吗?请帮忙。

致以最良好的问候,
Mateiaru

只记得在文件部分的arduino.cc上,在openNextFile示例中,他们使用File.name()!所以没有getFilename()。

Mateiaru

我建议您看看我的MP3 FilePlayer.ino示例。它完成了您正在尝试的操作,但仅限于串行端口

此外,它不会耗尽内存,因为它不会将文件名存储到数组或内存中。而是显示它们并让用户选择数字。这也可以很容易地适用于LCD的上/下箭头菜单。

请注意,我使用的是SdFat。它有更多在标准SD中未公开的函数和属性,以及文件.getFilename().