0

更新:
没有 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()”函数。有没有办法获取文件名?请帮忙。

最好的问候,
马蒂亚鲁

4

2 回答 2

0

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

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

请注意,我使用的是 SdFat。它具有标准SD中未公开的更多功能和属性。连同 file.getFilename() 。

于 2013-07-09T15:49:03.613 回答
0

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

马提亚鲁

于 2013-07-09T14:09:42.033 回答