FAT16_32 Dateisortierung im Ordner

Reihenfolge von Dateien bei der Suche ändern

NilsMeilwes
Benutzer
Avatar
Gender:
Age: 37
Posts: 14
Registered: 05 / 2016
Subject:

FAT16_32 Dateisortierung im Ordner

 · 
Posted: 02.11.2016 - 12:30  ·  #1
Hallo Zusammen,

wir nutzen in vielen Projekten hier in der Firma einen ATMEGA128-16AU in Kombination mit einer SD-Karte auf der wir täglich eine Logdatei ablegen.
Um nicht immer die Einheit öffnen zu müssen können wir den Inhalt der Logfiles über eine Serielle Schnittstelle ausgeben. Aktuell geben wir immer nur eine Datei aus. Das funktioniert soweit auch super.

Bei der Programmierung einer Ausgabe der letzten X Dateien ist mir aufgefallen, dass die Sortierreihenfolge sich scheinbar nicht ändern lässt. Wenn ich mit Find_first und Find_next alle Dateien in dem jeweiligen Directory scanne, kommt eine Liste an Dateien zum Vorschein dessen Reihenfolge ich nicht nachvollziehen kann. Sie ist weder nach Dateinamen noch nach Erstelldatum oder Zeit sortiert. Über einen Monatswechsel ist die neuste Datei plötzlich an erster Stelle obwohl eigentlich die neuen Dateien hinten liegen.
Da ich die Uhrzeit über eine Echtzeituhr auf der Platine einstellen kann habe ich Dateien mit verschiedenen Daten erstellt. Diese werden nun unabhängig des Datums oder des Dateinamens immer "hinten" angehängt, obwohl das Erstelldatum teilweise davor liegt.
Selbst wenn die SD-Karte auf einem PC mal geöffnet und neu sortiert wurde, ändert dies nichts an der Reihenfolge.

Gibt es eine Möglichkeit diese Sortierreihenfolge zu ändern? Oder der Suche vorzugeben, dass immer die älteste oder neuste Datei zuerst angezeigt wird? Ich habe in der Dokumentation bislang nichts dazu gefunden. Auch im Forum bin ich noch nicht fündig geworden. Dies würde mir die Programmierung einer Sortierroutine ersparen.

Vielen Dank schonmal im vorraus.
Gruß Nils
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: FAT16_32 Dateisortierung im Ordner

 · 
Posted: 02.11.2016 - 15:58  ·  #2
Hallo Nils,
die Dateien werden so aufgelistet wie sie in der FAT stehen.
Wenn du nach x Dateien eine neue erzeugst und vorne ist noch Platz in der FAT dann wird der neue Eintrag auch am Anfang der FAT erzeugt.

Die Sortierung ist eine Sache der GUI.
Alle gefundenen Einträge von Findxxx zwischenspeichern und sortieren dann ausgeben.

Quote
Selbst wenn die SD-Karte auf einem PC mal geöffnet und neu sortiert wurde, ändert dies nichts an der Reihenfolge.


Hier macht Windows das nicht anders. Am Dateisystem wird NICHTS geändert.

Gruß
miparo
NilsMeilwes
Benutzer
Avatar
Gender:
Age: 37
Posts: 14
Registered: 05 / 2016
Subject:

Re: FAT16_32 Dateisortierung im Ordner

 · 
Posted: 03.11.2016 - 08:54  ·  #3
Hallo miparo

Vielen Dank für die schnelle Antwort, auch wenn das nicht das is was ich hören wollte ;)

Gruß Nils
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: FAT16_32 Dateisortierung im Ordner

 · 
Posted: 03.11.2016 - 18:08  ·  #4
Hallo Nils,
wie Miparo schon sagte macht es Windows auch nicht anderst.
Hier wird die Sortierung durch den Explorer gemacht, nicht aber
schon durch die API. Eine Sortierung im AVR wäre sicher auch
möglich, aber nur im User Teil und ist sehr aufwändig.
Auf der PC Seite ist das wesentlich einfacher wenn die Filenamen
dorthin gesendet werden und die PC App dann sortiert und das
entspr. File vom AVR anfordert.

rolf
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   80   94 · Page-Gen-Time: 0.027679s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI