FileNamen werden nicht vollständig in ein array übernommen

Mein Job bringt mich noch um ... jetzt ist es wieder ruhiger und ich kann "weiter"machen.

Wie von Euch vorgeschlagen, soll ich - um meine Dateien alphabetisch sortieren zu können - mit Pointern arbeiten. Der Sinn ist mir klar, die Anwendung ist etwas anderes :o .
Aber bevor ich mich mit den Sortiermöglichkeiten beschäftige, scheitere ich an den Strings und Chars ... (wie wohl viele Anfänger).

Mein struct:

// 
struct listEintrag                                                      // "Datensatz" anlegen
{ 
  char soundFile[14];                                                   // Variable in struct
  listEintrag* next;                                                    // Zeiger in struct
};
const int listMax = 20;                                                 // maximale Größe der Einträge (Liste)
listEintrag fileListe[listMax];                                         // Dateiliste mit Größe definieren
listEintrag* first;                                                     // Zeiger auf Anfang der Liste
byte anzFiles;                                                          // Anzahl der eingefügten Files

Jetzt möchte ich meine fileListe mit den eingelesenen Dateinamen "füllen".
Dies habe ich mir wie folgt vorgestellt:

// Files einlesen
void FilesEinlesen(File pfad, int numTabs)
{ 
   anzFiles = 0;
   while(true)
   {
     //if (DEBUG == 1) Serial.println("lesen");                                          // Test  
     File element = pfad.openNextFile();                                                 // Einträge im Pfad nacheinander lesen  
     if (! element)                                                                      // wenn kein Eintrag mehr da ist ..
     {
       //if (DEBUG == 1) Serial.println("break");                                        // Test
       break;                                                                            // raus aus der Schleife 
     }
     if (! element.isDirectory() && numTabs == 0)                                        // Verzeichnis und Systemdatei ausschließen
     {                                                                                   // numTabs=0 -> Ohne Systemdateien und Verzeichnisse
        if (DEBUG == 1) Serial.println(element.name());                                  // Test 
        fileListe[anzFiles].soundFile = element.name();                                  //
        fileListe[anzFiles].next = NULL;
        //vorherigen next Zeiger auf aktuelles Element setzen
        if (anzFiles > 0)
        fileListe[anzFiles - 1].next = &fileListe[anzFiles];
        anzFiles++;
        element.close();
     } 
  } 
}

Beim compilieren erhalte ich die Fehlermeldung "incompatible Typen "char*" to "char[14]" bei fileListe[anzFiles].soundFile = element.name();

Dass der Compiler meckert, ist mir klar. In meinem struct habe ich "soundFile" als Char[14] definiert. "element.name" ist ein char*. Nachdem was ich bislang begriffen habe, sind beides eigentlich char-arrays. Bei dem dem char "soundfile" ist jedoch die Länge mit 14 definiert.
Mir gelingt es nicht, die beiden "kompatibel" zu machen.

Ich habe auch "element.name" in eine string-Variable eingelesen und dann versucht mit .toCharArray diese umzuwandeln. Klappt auch nicht.
Irgendwas habe ich mal wieder nicht begriffen :disappointed_relieved: Könnt Ihr mir wieder mal auf die Sprünge helfen?