AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Länge Dateiname/Pfade

Ein Thema von MicMic · begonnen am 30. Nov 2019 · letzter Beitrag vom 2. Dez 2019
Antwort Antwort
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#1

AW: Länge Dateiname/Pfade

  Alt 1. Dez 2019, 14:20
Obige Rechnung stimmt. Also rechnerisch würde unter C:\ eigentlich 256 Zeichen für ein Dateiname gehen (weil's 260 ergibt), jedoch sagt NTFS, bei 255 ist Schluss
Richtig?
Jep.

Zitat:
Ohne diesem Registry Eintrag (LongPathsEnabled=1) funktioniert's so wie in meiner Beispielrechnung? Um So mehr Unterverzeichnisse, um so kürzer dann
natürlich die Dateinamen und auch die Ordnernamen.
Richtig?
Je länger der absolute Pfad, desto kürzer müssen dessen einzelne Teile sein, um das MAX_PATH Limit nicht zu überschreiten. Korrekt.

Zitat:
Aber in der Programmierung mit dem Prefix "\\?\" kann man Dateien (ob nun in Hauptverzeichnis oder in Unterverzeichnissen) oder aber auch Ordner (siehe Nummer 5)
mit maximal 255 Zeichen nutzen.
Wikipedia sagt, dass für NTFS das Limit eines einzelnen Dateinamen 255 Unicode-Zeichen ist:
Zitat:
Max. filename length: 255 UTF-16 code units
. Daran wird auch der Long Path Prefix nichts ändern. Relevant wird dieser erst, wenn es um die Länge des absoluten Pfades geht.

Zitat:
Wenn man es richtig mit dem Prefix und den API Funktionen umsetzt, also dann auch
kopieren/verschieben/löschen.
Richtig?
Ja. Wobei man beachten muss, dass IIRC nicht alle Windows API-Funktionen dieses Prefix unterstützen. CopyFileEx gehört aber in jedem Fall dazu.

Zitat:
Mein CMD-Test ergab eben, mit "LongPathsEnabled=1", dass ich in jedem Unterverzeichnis maximal 255 Zeichen für ein Dateiname nutzen kann.
Richtig?
Das wird wohl so sein. Wie gesagt: MS schreibt in dem von mir verlinkten Artikel nur etwas von der Aufhebung des MAX_PATH Limits (unter bestimmten Voraussetzungen). Das Limit der Einzelteile bleibt aber bestehen, weil die vom darunterliegenden Dateisystem diktiert werden.

Zitat:
Mein CMD-Test ergab eben, mit "LongPathsEnabled=1", dass ich auch für Ordner maximal 255 Zeichen nutzen kann. Ebenfalls egal, ob im Hauptverzeichnis oder in Unterverzeichnissen.
Richtig?
Nunja, ein Verzeichnis ist eben auch nur eine Datei mit einem zusätzlichen Attribut. Siehe WIN32_FIND_DATA-Struktur (FILE_ATTRIBUTE_DIRECTORY).

Zitat:
Wie war das mit FAT32?
Da müsste es doch so wie bei Nummer 2 gehen.
Richtig?
Wikipedia sagt:
Zitat:
Max. filename length: 8.3 filename, or 255 UCS-2 characters when using LFN
LFN = Long File Name, UCS-2 ist mehr oder weniger Unicode. Also gilt für FAT32 dasselbe, wobei wahrscheinlich MAX_PATH trotzdem nicht überschritten werden kann. Aber das weiß ich nicht, und spielt in der Realität wohl auch eine sehr untergeordnete Rolle.

Grüße
Dalai
  Mit Zitat antworten Zitat
MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Länge Dateiname/Pfade

  Alt 1. Dez 2019, 20:26
Da habe ich wohl jetzt die Prüfung bestanden
Danke für die Antwort
Zitat:
Zitat:
Mein CMD-Test ergab eben, mit "LongPathsEnabled=1", dass ich auch für Ordner maximal 255 Zeichen nutzen kann. Ebenfalls egal, ob im Hauptverzeichnis oder in Unterverzeichnissen.
Richtig?
Nunja, ein Verzeichnis ist eben auch nur eine Datei mit einem zusätzlichen Attribut. Siehe WIN32_FIND_DATA-Struktur (FILE_ATTRIBUTE_DIRECTORY).
Wird wohl jetzt so sein. Also mit LongPathsEnabled=1 bzw. mit dem Prefix "\\?\".
Die frühere Variante ergabt bei meinen Tests ja, dass bei Ordnern noch etwas abgezogen wird, damit ein möglicher 8+3 Dateiname noch reinpassen kann. Was ja auch Sinn macht.

Jetzt habe ich wenigstens Durchblick erlangen *lach*
Also Dankeschön
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: Länge Dateiname/Pfade

  Alt 1. Dez 2019, 20:32
Falls du in Zukunft irgendwann ein Programm schreibst welches in der Registzry rumfummelt und LongPathsEnabled umschreibt, würde ich mir vorher die Erlaubnis vom Nutzer einholen.
  Mit Zitat antworten Zitat
MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Länge Dateiname/Pfade

  Alt 1. Dez 2019, 21:29
Falls du in Zukunft irgendwann ein Programm schreibst welches in der Registzry rumfummelt und LongPathsEnabled umschreibt, würde ich mir vorher die Erlaubnis vom Nutzer einholen.
Nein, wieso? Ich wollt nur ganz klar verstehen, wie das nun läuft mit Dateinamenlängen usw.
So kann man evtl. Fehler abfangen bzw. diese besser identifizieren. Gerade hier sind Errorcodes nicht immer so, wie man sich das wünschen würde.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Länge Dateiname/Pfade

  Alt 1. Dez 2019, 21:32
Zitat:
würde ich mir vorher die Erlaubnis vom Nutzer einholen.
Zitat:
Nein, wieso?
Weil man sowas nicht macht und ungefragt Systemeinstellungen ändert.
  Mit Zitat antworten Zitat
MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: Länge Dateiname/Pfade

  Alt 1. Dez 2019, 21:46
Ich meine mit "Nein, wieso?" dass ich hier nicht in der Registry herum schreibe bzw. sie ändere
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#7

AW: Länge Dateiname/Pfade

  Alt 1. Dez 2019, 21:49
Typisches Missverständnis
Um so besser
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:34 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