Diferencia entre revisiones de «File.openNextFile()»

De ArduWiki
Saltar a: navegación, buscar
(Descripción)
(Parámetros)
 
(No se muestran 7 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 
== Descripción ==
 
== 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.  
+
Método 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 ==
 
== Sintaxis ==
 
<pre>
 
<pre>
File variable = SD.openNextFile(nombre, modo);
+
File dir = SD.open(ruta);
 +
File archivo = dir.openNextFile();
 
</pre>
 
</pre>
  
 
== Parámetros ==
 
== Parámetros ==
;variable:Nombre de variable a instanciar.
+
;ruta:Directorio o carpeta
;nombre:Nombre de archivo SFN (8.3). Ejemplo log12345.txt.
+
;dir:Nombre de variable a instanciar.
;modo:Puede ser FILE_WRITE o FILE_READ
+
;archivo:Nombre de variable a instanciar.
  
 
== Advertencias ==
 
== Advertencias ==
Línea 18: Línea 17:
 
== 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>
  
Línea 24: Línea 69:
  
 
== Referencias externas ==
 
== Referencias externas ==
 +
* [https://www.arduino.cc/en/Reference/FileOpenNextFile Referencias]
  
 
[[Category:Libreria SD]]
 
[[Category:Libreria SD]]

Revisión actual del 20:09 3 jul 2019

Descripción

Método de la clase File (fichero/archivo) o directorio (carpeta) dentro de la tarjeta SD; con este se interactúa directamente sobre ellos.

Sintaxis

File dir = SD.open(ruta);
File archivo = dir.openNextFile();

Parámetros

ruta
Directorio o carpeta
dir
Nombre de variable a instanciar.
archivo
Nombre de variable a instanciar.

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