Sortierung von Dateinamen stimmt nicht ...

Alles was nicht wirklich Programmierung ist, aber auch nicht Plaudereien im Raucherraum

Moderator: Moderatoren

Antworten
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Sortierung von Dateinamen stimmt nicht ...

Beitrag von brandelh »

Hi,

Sobald ein Dateiname länger als 8.3 ist, wird intern eine Abkürzung mit Ziffer verwendet (Beisp~1.*), leider auch für die Sortierung solange man nicht diesen Schlüssel setzt:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb\Parameters\InfoCacheLevel => REG_DWORD => 0x10 oder 16 dezimal.

Unter Windows 7 gibt es den Schlüsselwert HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb\Parameters jedoch nicht, also muss man diesen anlegen.
Ich habe mal meinen Wert aus regedit exportiert und mit ZIP gepackt, wenn man die beiliegende Datei speichert, entpackt und anklickt, sollte das funktionieren ;-)

PS: ich weiß, dass der Wert schon mehrfach in anderen Beiträgen erwähnt wurde, aber ich habe eben eine ganze Zeit vergeblich gesucht, daher der neue Beitrag mit neuen Suchbegriffen und der passenden Überschrift.
Dateianhänge
InfoCacheLevel.zip
(357 Bytes) 344-mal heruntergeladen
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Sortierung von Dateinamen stimmt nicht ...

Beitrag von brandelh »

Ich muss gerade feststellen, dass ich voreilig war :-( er sortiert folgende Verzeichnisse immer noch falsch :?

mit CMD /ON wird richtig sortiert (anonymisiert mit ?):

Code: Alles auswählen

20130209 Diemel??? mit L?????
20130401 Wandern mit ????
20130402 ??? ???? ????
20130413 ??? ?????????
201305xx ???????????
aber im Explorer kommt das zuletzt angelegte Verzeichnis oben ...

Code: Alles auswählen

201305xx ???????????
20130209 Diemel??? mit L?????
20130401 Wandern mit ????
20130402 ??? ???? ????
20130413 ??? ?????????
Hat noch jemand eine Idee ?

Ach ja, Windows 7 Home Premium und Windows 7 Ultimate, gleiche Sortierung.
Gruß
Hubert
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Sortierung von Dateinamen stimmt nicht ...

Beitrag von Herbert »

Hubert, wie kommst du darauf? Womit erzeugst du noch die alte Dateibegrenzung nach 8.3?
Du kannst wohl 8.3-Filenamen erzwingen, aber normalerweise hast du das doch nicht mehr?? Alte 16-bit-Dinge ja. Aber wer hat das noch?
Ich verstehe dich nicht...
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Sortierung von Dateinamen stimmt nicht ...

Beitrag von brandelh »

Was ich weiß ist, dass die Sortierung der längeren Verzeichnisnamen trotz meines vorangestellten Datums von Windows 7 nicht korrekt angezeigt wird.
Ich denke das hängt damit zusammen, dass intern immer noch nach 8.3 sortiert wird, obwohl ich diese Namen nicht selbst vergebe und auch nicht angezeigt bekomme.
InfoCacheLevel sollte das - so wie ich es verstanden habe - beheben, aber bei mir hat es das nicht. Ich verstehe es auch nicht :D

PS: vielleicht hängt es an den xx für den Tag (wobei x größer als 9 ist ...) und der seit XP seltsamen Zahlensortierung (wo ich doch extra auf Jahr Monat Tag umgestellt habe ...) :badgrin:
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Sortierung von Dateinamen stimmt nicht ...

Beitrag von brandelh »

stimmt, wenn ich 20130500 schreibe wird es als letztes Verzeichnis eingeordnet ... =D>
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Sortierung von Dateinamen stimmt nicht ...

Beitrag von AUGE_OHR »

hi,
brandelh hat geschrieben:aber im Explorer kommt das zuletzt angelegte Verzeichnis oben ...
die "Anzeige" des Explorer ist ja ein Listview.

"gefüttert" wird ein Listview mittels WIN32_FIND_DATA Structure
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
brandelh hat geschrieben:... dass intern immer noch nach 8.3 sortiert wird, obwohl ich diese Namen nicht selbst vergebe und auch nicht angezeigt bekomme.
Remarks

If a file has a long file name, the complete name appears in the cFileName member, and the 8.3 format truncated version of the name appears in the cAlternateFileName member. Otherwise, cAlternateFileName is empty. If the FindFirstFileEx function was called with a value of FindExInfoBasic in the fInfoLevelId parameter, the cAlternateFileName member will always contain a NULL string value. This remains true for all subsequent calls to the FindNextFile function. As an alternative method of retrieving the 8.3 format version of a file name, you can use the GetShortPathName function. For more information about file names, see File Names, Paths, and Namespaces.
gruss by OHR
Jimmy
Antworten