Diferencia entre revisiones de «File.openNextFile()»

De ArduWiki
Saltar a: navegación, buscar
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 16:01 3 jul 2019

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


Referencias externas