AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme FAT32 = 21.844 Dateien pro Verzeichnis?
Thema durchsuchen
Ansicht
Themen-Optionen

FAT32 = 21.844 Dateien pro Verzeichnis?

Ein Thema von Angel4585 · begonnen am 26. Nov 2012 · letzter Beitrag vom 27. Nov 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#1

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 09:39
Welches Verzeichnis?

War bei FAT32 auch noch die Größe des Rootverzeichnisses festgelegt?
Bei FAT12/16 wurde (wenn ich mich nicht täusche) die (maximale) Größe des Rootverzeichnisses beim Formatieren festgelegt und ließ sich nachträglich nicht mehr verändern.
(genauso wie man sagen konnte wieviele FATs man haben möcher und wie groß ein Cluster sein soll)



Muß es denn unbedingt FAT sein?
Wie wäre es mit exFAT oder NTFS? (bei NTFS eventuell alle Rechte entfernen und stattdessen "jeder" mit Vollzugriff)


Wenn das maximal 65535 Dateieinträge pro Verzeichnis sind, dann kann das schon hinkommen.
  • ein Eintrag = ein 8.3-Dateiname
  • für "lange Dateinamen" werden weitere Einträge pro Datei benötigt
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Nov 2012 um 09:43 Uhr)
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 09:53
Ja ich werde das Dateisystem umstellen auf NTFS.

Kann das echt an den Dateinamen liegen? Die haben alle 16.1 Zeichen.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#3

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 10:00
:rechne:
:rechne:
:rechne:


Jupp.

18 Zeichen pro langem Dateinamen = (1{Self} + 21844) * (1{8.3} + 2{Long}) = 65535 (paßt auf's Byte genau)

Jeder Eintrag ist 32 Byte groß, also 16 Unicodezeichen pro Eintrag für einen Bruchteil des langen Dateinamen, aber jeweils abzüglich ein paar Verwaltungsbytes, denn die LongFileName-Einträge müssen sich an ein paar grunzsätzliche Formate der 8.3-Einträge halten, damit es kompatibel bleibt, mit "alten" FAT32-Treibern.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Nov 2012 um 10:06 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 10:03
Vermutlich nicht das Problem, aber ich werfe mal einen weiteren Punkt ins Spiel: die Länge des Dateinamens und des gesamten Pfades.

Denn wenn de Pfad unheimlich lang ist, gibt es dann Probleme eine Datei anzulegen. Das sonderbare ist, dass andere Programme diese Probleme wiederum nicht haben, Explorer aber schon.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#5

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 10:12
Vermutlich nicht das Problem, aber ich werfe mal einen weiteren Punkt ins Spiel: die Länge des Dateinamens und des gesamten Pfades.
Da hier alle Dateien die selbe Länge hat, sollte es keinen Unterschied zwischen einer existierenden Datei und einer "neuen" (zuvielen) Datei geben.
Also stimmt, sollte hier kein Problem bereiten.

256 Chars pro Pfad, also 260 aka MAX_PATH inkl. Laufwerk ("X:\") und abschließende #0
oder 64 KB via UNC.

Der Explorer nimmt standardmäßig nicht UNC und dann kommt's drauf an, ob ein Programm einen absoluten Pfad benutzt oder von sonstwo einen Relativen.
PS: Beim Verschieben (innerhalb der Partition) sind die Untergeordneten Dateien/Pfade exal, womit man solche zulangen Pfade zumindestens löschen, verschieben oder drauf zugreifen kann indem man einen langen Pfadnamen umbenennt oder ein Unterverzeichnis verschiebt (ein paar Ebenen rauf).
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Nov 2012 um 10:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 21:03
Ähm, stellt sich auch die Frage, ob es Sinn macht so viele Dateien in einem Verzeichnis zu haben. Wer will denn da noch was finden?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 21:06
Hallo,

FAT32 verwendet intern mehrere "normale" Einträge,
um lange Dateinamen abzubilden.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 21:09
Ähm, stellt sich auch die Frage, ob es Sinn macht so viele Dateien in einem Verzeichnis zu haben. Wer will denn da noch was finden?
und die Performance beim Zugriff auch nicht besser wird
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 21:32
Jemand hat mal gesagt, so bald man so weit ist, dass man so eine Frage stellen muss, dann macht man was falsch.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#10

AW: FAT32 = 21.844 Dateien pro Verzeichnis?

  Alt 26. Nov 2012, 21:50
Das Problem sehr viele Dateien zu verwalten zu müssen gibt es auch in anderer Software wie z.B. der Cache von Firefox oder das Repository von Git.

Üblicherweise wird das Problem so gelöst:
Man wendet eine Hashfunktion (z.B. MD4 oder SHA-1) auf den Dateiinhalt an und erhält einen 16 oder 20 Byte langen Hashwert.
Der Hashwert wird in einen hexadezimalen String umgewandelt (32 oder 40 Zeichen Länge).
Die ersten beiden Zeichen ergeben den Namen des Verzeichnisses und die restlichen Zeichen den Dateinamen.
Damit werden die Dateien einigermassen gleichmässig auf bis zu 256 Verzeichnisse verteilt und man kann die Limits des Dateisystem einhalten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz