Go Down

Topic: Store file names from SD card in an array (Read 403 times) previous topic - next topic

bozont

Hi!
This may sound noobie, but I'm stuck on this problem for a few days. I'm trying to store the file names of a directory from an SD card  to an array, but no matter what I try, it won't work :(

I have a global variable for storage:
Code: [Select]
char *sdfiles[200];
And I have two functions, one to read the file names to the array, and an other one to print them through serial.

Code: [Select]
void cacheDirectory(File dir) {
  int i;
  while(true) {

    File entry =  dir.openNextFile();
    if (! entry) {
      // no more files
      //Serial.println("**nomorefiles**");
         break;
    }
    sdfiles[i] = entry.name();
    Serial.println(sdfiles[i]);
   
   i++;
  }
}


Code: [Select]
void printSDCache() {
  Serial.println("SD cache: ");
  for(int i = 0;i <= files;i++) {
      Serial.println(sdfiles[i]);
  } 
}


And this is how i call them form the setup() :
Code: [Select]
root1 = SD.open("/");
  cacheDirectory(root1);
  printSDCache();
 


When I call them from the setup() the cacheDirectory() seems to work, when i print the values back after storing them. But when I call the printSDcache() afterwards, i just get memory garbage :( I've tried using String array instead of char*, but that hangs my DUE. I've even tried an array of structs, but that gave me the same result as the char* array.

Any help would be appreciated!
Thank you!

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy