Diferencia entre revisiones de «File.openNextFile()»
De ArduWiki
m (Kike GL trasladó la página SD.openNextFile() a File.openNextFile() sin dejar una redirección) |
(→Ejemplo) |
||
Línea 18: | Línea 18: | ||
== Ejemplo == | == Ejemplo == | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
+ | #include <SD.h> | ||
+ | File root; | ||
+ | |||
+ | void setup(){ | ||
+ | Serial.begin(9600); | ||
+ | pinMode(10, OUTPUT); | ||
+ | SD.begin(10); | ||
+ | root = SD.open("/"); | ||
+ | printDirectory(root, 0); | ||
+ | delay(2000); | ||
+ | Serial.println(); | ||
+ | Serial.println("Rewinding, and repeating below:" ); | ||
+ | Serial.println(); | ||
+ | delay(2000); | ||
+ | root.rewindDirectory(); | ||
+ | printDirectory(root, 0); | ||
+ | root.close(); | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | //Nada | ||
+ | } | ||
+ | |||
+ | void printDirectory(File dir, int numTabs){ | ||
+ | while (true){ | ||
+ | File archivo = dir.openNextFile(); | ||
+ | if (!archivo){ | ||
+ | if (numTabs == 0){ | ||
+ | Serial.println("** Listo **"); | ||
+ | } | ||
+ | return; | ||
+ | } | ||
+ | for (byte i=0; i<numTabs; i++){ | ||
+ | Serial.print('\t'); | ||
+ | } | ||
+ | Serial.print(archivo.name()); | ||
+ | if (archivo.isDirectory()){ | ||
+ | Serial.println("/"); | ||
+ | printDirectory(archivo, numTabs + 1); | ||
+ | }else{ | ||
+ | Serial.print("\t\t"); | ||
+ | Serial.println(archivo.size()); | ||
+ | } | ||
+ | archivo.close(); | ||
+ | } | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revisión del 20:01 3 jul 2019
Contenido
Descripción
Es el método principal para crear la instancia de la clase File (fichero/archivo) o directorio (carpeta) dentro de la tarjeta SD; con este se interactúa directamente sobre ellos.
Tip: También se puede usar el método SD.open().
Sintaxis
File variable = SD.openNextFile(nombre, modo);
Parámetros
- variable
- Nombre de variable a instanciar.
- nombre
- Nombre de archivo SFN (8.3). Ejemplo log12345.txt.
- modo
- Puede ser FILE_WRITE o FILE_READ
Advertencias
Ejemplo
#include <SD.h>
File root;
void setup(){
Serial.begin(9600);
pinMode(10, OUTPUT);
SD.begin(10);
root = SD.open("/");
printDirectory(root, 0);
delay(2000);
Serial.println();
Serial.println("Rewinding, and repeating below:" );
Serial.println();
delay(2000);
root.rewindDirectory();
printDirectory(root, 0);
root.close();
}
void loop(){
//Nada
}
void printDirectory(File dir, int numTabs){
while (true){
File archivo = dir.openNextFile();
if (!archivo){
if (numTabs == 0){
Serial.println("** Listo **");
}
return;
}
for (byte i=0; i<numTabs; i++){
Serial.print('\t');
}
Serial.print(archivo.name());
if (archivo.isDirectory()){
Serial.println("/");
printDirectory(archivo, numTabs + 1);
}else{
Serial.print("\t\t");
Serial.println(archivo.size());
}
archivo.close();
}
}
Vea también