Dateiname

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
In diesem Artikel oder Abschnitt fehlen folgende wichtige Informationen: Erläuterung des LFN-Systems (Long File Name. Ab wann sind für Dateinamenserweiterungen mehr als 3 Zeichen möglich und wie lang kann eine Dateinamenserweiterung heute maximal sein.)

Du kannst Wikipedia helfen, indem du sie recherchierst und einfügst, aber kopiere bitte keine fremden Texte in diesen Artikel.

Ein Dateiname identifiziert eine Datei auf einem Datenträger oder bei einer Datenübertragung. Meist wird eine Datei zusätzlich durch einen Verzeichnisnamen charakterisiert, sodass ein vollständiger Pfadname entsteht. Erst diese Kombination zu einem vollständigen Pfadnamen ist in der Regel eindeutig.

Eigenschaften[Bearbeiten]

Ein Dateiname kann – abhängig vom jeweiligen Betriebssystem – aus mehreren Teilen bestehen. Die einzelnen Teile sind durch bestimmte Zeichen, die in der Regel nicht Teil des Dateinamens sein können, getrennt; die Liste von Dateinamenserweiterungen verschafft einen Überblick.

Einige Betriebssysteme machen die Behandlung der Dateien von der jeweiligen Dateinamenserweiterung abhängig, andere arbeiten ohne diese Konvention und erkennen den Dateityp anhand des Inhalts (beispielsweise anhand einer sogenannten magischen Zahl). Auch auf diesen Systemen werden aber oft Dateien mit solchen Dateiendungen versehen, da es den Datenaustausch vereinfacht.

Die maximale Länge eines Dateinamens wird sowohl durch das Betriebssystem als auch durch das Dateisystem des Datenträgers begrenzt. So können etwa auf einer CD-ROM bei Verwendung des Joliet-Dateisystems maximal 64 Zeichen genutzt werden. Eine indirekte Begrenzung kann zudem durch eine maximale Länge von Pfadnamen im Betriebssystem entstehen.

Ein Unterschied zwischen MS-Windows und Linux/Unix besteht darin, dass Windows bei Dateinamen nicht zwischen Groß- und Kleinschreibung unterscheidet, während Unix dies tut (zum Beispiel bezeichnen dort Haustuer.txt und hausTuer.txt unterschiedliche Dateien).

Dateisysteme[Bearbeiten]

Dateisystem typische Anwendung max. Anzahl Zeichen in einem Dateinamen Zeichensatz
FAT ohne VFAT (DOS) Festplatten, Speicherkarten (Foto) 8+3 OEM (meist Codepage 437)
Amiga Fast File System Festplatten 31 ISO 8859
ISO 9660 Level 2 CD, DVD 31 ASCII
Joliet CD, DVD 64 Unicode
ISO 9660:1999 CD, DVD 179 – 221 je nach sonstigen Attributen ASCII/unspezifiziert
FAT mit VFAT (Windows) Festplatten, USB-Sticks 255 Unicode
ext3 Festplatten 255 (1) Unicode (2)
HFS Plus Festplatten 255 Unicode (UTF-16)
UDF CD, DVD 255 Unicode
NTFS Festplatten 256 (3) Unicode (UTF-16) (4)
ReFS Festplatten 32000 Unicode
(1) Bei Verwendung von UTF-8-Codierung und Benutzung von Nicht-ASCII-Zeichen stehen zwar 255 Byte, aber weniger als 255 Zeichen zur Verfügung.
(2) Die Codierung ist nicht genormt; als Voreinstellung wird meist UTF-8 verwendet.
(3) Bei Verwendung langer Unicode-Pfade sind lediglich 255 Zeichen möglich, vgl. MSDN-Artikel "Naming Files, Paths, and Namespaces", Abschnitt "Maximum Path Length Limitation".
(4) Richard Russon und Yuval Fledel. "NTFS Documentation".

Betriebssysteme[Bearbeiten]

Unix[Bearbeiten]

Unix- und Unix-ähnliche Betriebssysteme wie zum Beispiel Solaris oder Linux betrachten Dateinamen als Ganzes. Eine Datei kann mehrere Namen haben und sich in mehreren Verzeichnissen befinden („hard links“ oder „bind mounts“). Alle Zeichen außer dem Schrägstrich "/" und dem Nullzeichen sind erlaubt. Frühe Versionen hatten 1 bis 14 Zeichen lange Dateinamen. Die BSD-Varianten führten bis zu 255 Zeichen lange Namen ein.

Ein relativer Dateipfad kann aus mehreren Segmenten bestehen und beginnt mit einem Segment. Jedes Segment unterliegt den Regeln des Dateinamens, kann also 14 bzw. 255 Zeichen lang sein. Die Segmente der Dateipfade werden durch das Zeichen "/" getrennt. Das letzte Segment kennzeichnet die eigentliche Datei. Die vorhergehenden Segmente sind entweder Verzeichnisnamen oder symbolische Verweise (englisch „symbolic links“) auf Verzeichnisnamen. Ein relativer Dateipfad geht vom aktuellen Arbeitsverzeichnis aus, das jeder Prozess individuell setzen kann. Ein absoluter Dateipfad beginnt hingegen bereits mit "/" und ist unabhängig vom aktuellen Arbeitsverzeichnis. Er geht vom Wurzelverzeichnis aus. Über das Wurzelverzeichnis sind alle Dateien eines Systems erreichbar.

Beim Zugriff wird zwischen Groß- und Kleinschreibung unterschieden.

Beispiele:

/home/user/Dokumente/brief.txt
/usr/bin/texteditor

Der Dateiname '.' (Punkt) bezeichnet das aktuelle Arbeitsverzeichnis. Der Name '..' verweist auf das übergeordnete Verzeichnis.

Auch das Leerzeichen, der Zeilentrenner oder die sogenannten Wildcards '*' und '?' können Teil eines Pfadnamens sein. Solche Zeichen bringen allerdings manchmal später Probleme mit sich, da zum Beispiel schlecht programmierte Skripte damit nicht umgehen können. Weiterhin kann es Probleme mit Dateinamen geben, die Zeichen enthalten, die im aktuell verwendeten Zeichensatz eines Programms nicht vorkommen (zum Beispiel japanische Zeichen auf einem amerikanisch eingerichteten System). Die nicht darstellbaren Zeichen werden dann oft als Fragezeichen oder kleine Kästchen angezeigt, was den Zugriff auf die Daten sehr schwierig macht. Diese Dateien können dann oft nur bearbeitet werden, nachdem sie auf einer niedrigen Dateisystem-Abstraktionsebene umbenannt wurden (zum Beispiel durch Angabe der sogenannten inode statt des Dateinamens mit ls -i und find . -inum […] -exec mv {} […] \;).

Ein Unix-System verwendet keine speziellen Erweiterungen, wie .EXE oder .CMD. Es hat sich allerdings eingebürgert, Dateien eines bestimmten Types, wie in anderen Betriebssystemen, auch mit einem Punkt und einer entsprechenden Erweiterung zu versehen, um die Übersichtlichkeit zu erhöhen. Beispielsweise wird die Endung .c für C-Quellprogramme verwendet. Ausführbare Dateien, also Programme und Skripte, erhalten keine Endung. Dateitypen können ansonsten mit dem einfachen Programm "file", unabhängig von einer eventuell vorhandenen Erweiterung ermittelt werden.

Dateien oder Verzeichnisse, deren Namen mit einem Punkt beginnen, werden üblicherweise als „versteckte“ Dateien behandelt und nur angezeigt, wenn der Benutzer dies explizit angibt (zum Beispiel mit ls -a).

Ähnliches gilt für Verzeichnispfade.

CP/M, DOS, Windows bis Version 3.11[Bearbeiten]

Dateinamen bestehen unter CP/M sowie den verschiedenen PC-kompatiblen DOS-Versionen inkl. MS-Windows bis zur Version 3.11 aus einem maximal acht Zeichen umfassenden eigentlichen „Namen“ sowie optional einem Punkt und einer maximal drei Zeichen umfassenden „Erweiterung“ (englisch extension), die auch den Typ der betreffenden Datei angibt (siehe 8.3). Erweiterungen werden oft von Programmen vergeben bzw. für Programme reserviert, zum Beispiel die Erweiterung .TXT für Textdateien. Auch die Betriebssysteme selbst verwenden spezielle Erweiterungen wie beispielsweise .BAT für Skriptdateien, .SYS für Treiberdateien oder .EXE und .COM für ausführbare Dateien.

Die folgenden Zeichen sind dabei, da sie in den genannten Systemen syntaktische Funktionen erfüllen, in Dateinamen und Erweiterungen nicht erlaubt:

< > ? " : | \ / *

Das Leerzeichen ist ebenfalls nicht erlaubt. Außerdem sind einige Worte reserviert und dürfen nicht als Dateiname benutzt werden, da sie als Gerätenamen verwendet werden:

CON, PRN, AUX, NUL
COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9
LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9

Dadurch kann man unter klassischem DOS zum Beispiel die folgenden Dateinamen, die unter anderen Betriebssystemen zulässig sein können, nicht benutzen: aux.c, q"uote"s.txt, NUL.txt.

Verzeichnisnamen werden unter den genannten Betriebssystemen wie normale Dateinamen gehandhabt. Sie haben üblicherweise keine Erweiterung, können jedoch mit einer solchen versehen werden. Diese hat dann in der Regel, anders als beim Namen von sonstigen Dateien, keine Funktion. Jede Datei und jedes Verzeichnis befindet sich auf einem Laufwerk, welches durch einen Buchstaben und einen Doppelpunkt gekennzeichnet wird. Ein vollständiger Name besteht aus dem Laufwerk, optional einem oder mehreren Verzeichnisnamen und dem eigentlichen Dateinamen. Die genannten Bestandteile werden durch das Verzeichnistrennsymbol '\' voneinander getrennt.

A:\MSDOS.SYS
C:\DOKUMENT\BRIEF.TXT

Da nur acht Zeichen zur Verfügung stehen, werden die Bezeichnungen oft verstümmelt. Die Namen '.' und '..' sind wie unter Unix für das aktuelle Verzeichnis und das übergeordnete Verzeichnis reserviert.

Beim Zugriff wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Windows ab Version 95[Bearbeiten]

Unter Windows (Windows 95, 98, ME, NT, 2000, XP, Vista, 7, 8) besteht ein Dateiname aus dem Namen, einem Punkt und einer Erweiterung, die den Dateityp festlegt. Es können auch mehrere Punkte in einem Dateinamen angegeben werden, der letzte Punkt dient dann zur Trennung von Name und Erweiterung.

Länge von Dateiname und Pfad[Bearbeiten]

Normalerweise ist die Pfadlänge unter Windows auf 260 Zeichen beschränkt, d. h. drei Zeichen für die Laufwerksangabe, 256 Zeichen für den Pfad innerhalb des Laufwerks und ein nicht sichtbares String-Terminierungszeichen. Längere Pfade bis zu 32767 Zeichen, wie sie von NTFS unterstützt werden, sind mittels UNC (Uniform Naming Convention) möglich, d. h. \\?\ muss vorangestellt werden.[1]

Zur Wahrung der Kompatibilität mit alten MS-DOS-Programmen kann der Dateiname auch in der 8.3-Notation angegeben werden, wenn dies in Windows nicht deaktiviert wurde. Dabei wird der Dateiname eindeutig mit acht Zeichen für den Namen, einem Punkt und bis zu drei Zeichen für die Dateierweiterung dargestellt, welche in jedem Verzeichnis neu generiert werden. Wenn Dateien ihren langen Dateinamen verloren haben, sie also nur diesen spezifischen Kurznamen haben, kann es zu Konflikten mit schon existierenden Dateien mit langem Dateinamen kommen, deren Dateiname auf denselben Namen verkürzt wurde, auch wenn sie vorher in einem anderen Verzeichnis problemlos koexistierten. (→8.3)

Problematische und unzulässige Zeichen oder Namen[Bearbeiten]

In Dateinamen und Erweiterungen sind, wie schon unter DOS und Windows bis Version 3.11, folgende Zeichen nicht erlaubt:

< > ? " : | \ / *

Ebenfalls unzulässig sind folgende, wie schon zuvor als Gerätenamen reservierte Dateinamen:

CON, PRN, AUX, NUL
COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9
LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, und LPT9.

Dadurch kann man auch unter den neueren Windows-Versionen zum Beispiel folgende Dateinamen, die unter anderen Betriebssystemen erlaubt sein können, nicht benutzen: aux.c, q"uote"s.txt, NUL.txt.

Problematisch sind außerdem Dateinamen, die das eigentlich erlaubte &-Zeichen enthalten, das von der DOS-Umgebung unter Windows jedoch als Trennzeichen einzeiliger Befehlsketten verwendet wird, so dass alles auf ein &-Zeichen Folgende als eine weitere DOS-Befehlszeile interpretiert wird. In der Konsequenz gibt die Windows-„Eingabeaufforderung“ daher in diesem Fall eine Fehlermeldung aus, dass sie einen Befehl nicht finden oder ausführen konnte, dessen Name der Rest des eingegebenen Dateinamens nach dem &-Zeichen ist, ganz zu schweigen davon, dass die fragliche Datei selbst natürlich auch nicht geöffnet oder bearbeitet werden konnte.

Zusätzlich sind auch Dateinamen problematisch, die am Ende ein Leerzeichen haben. Diese kann man unter Windows nicht anlegen; werden sie unter anderen Betriebssystemen erstellt, kann man auf sie unter Windows nicht zugreifen, da Windows die Leerzeichen am Ende einfach abschneidet. Autoren von Schadprogrammen haben dies bereits ausgenutzt, da dadurch Anti-Virenprogramme nur durch besondere Maßnahmen auf solche Dateien zugreifen können.

Ansonsten können alle im Unicode-Standard definierten Zeichen benutzt werden, wobei in der Praxis ältere Applikationen oft mit Zeichen Schwierigkeiten haben, deren Code nicht im Windows-1252-Zeichensatz enthalten ist.

VMS[Bearbeiten]

Unter VMS (Virtual Memory System) besteht ein Dateiname aus dem Namen, einem Punkt, einer Erweiterung, einem Semikolon und einer Versionsnummer. Die Versionsnummer wird bei jeder Neuanlage einer gleichnamigen Datei (mit Erweiterung) automatisch um Eins erhöht. Dadurch kann man mehrere Versionen (Anzahl ist einstellbar, max 32.767) derselben Datei gleichzeitig halten. Die folgenden Angaben gelten für ODS-2 (on disk structure):

Dateinamen können max 39 Zeichen lang sein, wobei nur bestimmte Zeichen (Buchstaben, Ziffern, Unterstrich, Dollarzeichen) erlaubt sind. Es wird nicht zwischen Groß- und Kleinschreibung unterschieden. Die Erweiterung kann ebenfalls 39 Byte lang sein, wird durch einen Punkt getrennt und ist nicht Teil des Dateinamens. Außer bei Verzeichnissen, wo die Erweiterung immer ".DIR" lautet, hat sie aber keine Bedeutung für die mögliche Verwendung der Datei (es gibt aber Standards, die bei einigen Dateitypen üblicherweise eingehalten werden).

Die Gesamt-Pfadlänge (also Disk, Verzeichnisbaum, Dateiname, Erweiterung und Version) darf 255 Bytes nicht überschreiten.

Internet[Bearbeiten]

World Wide Web[Bearbeiten]

Die Übertragung von Dateien im World Wide Web ist durch den HTTP-Standard geregelt. Enthält ein Dateiname Zeichen außerhalb der ASCII-Buchstaben und -Ziffern, so werden diese in der URL in einer %-Darstellung codiert mit einem Prozentzeichen, gefolgt von einem Zwei-Zeichen-Code in hexadezimaler Form, etwa „haust%FCr.html“ statt „haustür.html“. Um den Codewert ermitteln zu können, ist die Kenntnis der Zeichencodierung (zum Beispiel UTF-8 oder ISO 8859-1) des Dateinamens nötig.

Dateidownload[Bearbeiten]

Der FTP-Standard sieht nur ASCII-Zeichen als zwingend unterstützt vor. Oft wird ein Dateidownload allerdings auch unter Benutzung von HTTP durchgeführt.

E-Mail[Bearbeiten]

Die Übertragung von Dateianhängen (und damit auch die dort zulässigen Dateinamen) ist in den Standards SMTP und MIME geregelt.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

 Wiktionary: Dateiname – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Einzelnachweise[Bearbeiten]

  1. Naming Files, Paths, and Namespaces. In: MSDN. Microsoft, abgerufen am 13. September 2011 (englisch).