mini|Dateinamen auf einer Bildschirmkonsole unter Windows Ein Dateiname identifiziert eine Datei in einem Dateisystem 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. Pro Verzeichnis (Ordner) ist eine identische Benennung von zwei Dateien nicht möglich – hierbei können Dateinamen vom System normalisiert werden, sodass etwa eine veränderte Groß- und Kleinschreibung keinen Unterschied macht (keine ). Die optionale Dateinamenserweiterung ist Teil des Dateinamens.

Eigenschaften Ein Dateiname kann – abhängig vom jeweiligen Betriebssystem oder Dateisystem – aus mehreren Teilen bestehen. Die einzelnen Teile sind durch bestimmte Zeichen, die in der Regel nicht Teil des vergebenen Namens sind, getrennt. Ein solches Zeichen ist etwa der Punkt, ., der gefolgt von einer Dateinamenserweiterung, hintangestellt, den Typ einer Datei anzeigt; die Liste von Dateinamenserweiterungen verschafft einen Überblick.

Einige Betriebssysteme machen die Behandlung der Dateien allein von der jeweiligen Dateinamenserweiterung abhängig. Andere Betriebssysteme erkennen den Dateityp anhand des Inhalts – beispielsweise anhand einer sogenannten magischen Zahl, mit deren Hilfe sich ein bestimmter Dateityp relativ zuverlässig bestimmen lässt, oder mittels im zur Datei zugehörigen alternativen Datenstrom gespeicherten Daten, etwa zum Dateityp und zum erstellenden Programm. Doch auch auf Systemen, die nicht von einer Dateinamenserweiterung den Dateityp ableiten, werden Dateinamen damit versehen – u. a. 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.

Ob beim Dateinamen zwischen Groß- und Kleinbuchstaben unterschieden wird liegt gleichermaßen am verwendeten Betriebssystem und am jeweiligen Dateisystem. Vor allem historische Dateisysteme wurden oft nicht entworfen, das heißt, sie speichern den Dateinamen z. B. generell in Großbuchstaben ab. Die meisten aktuellen Dateisysteme sind jedoch in jedem Fall , das heißt, sie halten den Dateinamen in der bei der Erstellung oder Umbenennung benutzten Schreibweise mit Groß- und Kleinbuchstaben vor – das verwendete Betriebssystem oder die jeweilige Programmierschnittstelle (, kurz API) können dann sowohl als auch ausgelegt sein.

Dateisysteme Dateisystem typische Anwendung max. Anzahl Zeichen in einem Dateinamen Zeichensatz Groß-/​Kleinschreibung CTTS/ITS u. a. Festplatten 6+6 6-Bit keine Unterscheidung (gespeichert werden nur Großbuchstaben) Xerox Alto Festplatten 31“The Xerox Alto Computer” (englisch) aus BYTE, Ausgabe 9/1981, S. 58–68. gespeichert, aber keine Unterscheidung CP/M-Dateisystem und FAT (86-DOS) Disketten, Festplatten, Speicherkarten (Foto) 8+3 OEM (meist Codepage 437) keine Unterscheidung (gespeichert werden nur Großbuchstaben); da 86-DOS als PC DOS und MS-DOS auf IBM PCs und kompatiblen Computern weite Verbreitung fand, wird es als Industriestandard auf vielen weiteren Systemen unterstützt und/oder verwendet Unix File System (UFS) Festplatten 14/255 Codepage strikte Unterscheidung Macintosh File System (MFS) Disketten 255 Amiga Fast File System Festplatten 31 ISO 8859 gespeichert, aber keine Unterscheidung HFS Disketten, Festplatten, CDs 31 ISO 9660 Level 2 CDs, DVDs 31 ASCII keine Unterscheidung (gespeichert werden nur Großbuchstaben) Joliet CDs, DVDs 64 Unicode gespeichert, jedoch unter Windows keine Unterscheidung extended filesystem Festplatten, SSDs 255 Unicode Unterscheidung, seit Mitte 2019 jedoch bei ext4 mit der Option, diese abzuschalten (casefold) NTFS Festplatten, SSDs 256Abschnitt Maximum Path Length Limitation MSDN, Naming Files, Paths, and Namespaces. Unicode (UTF-16)Richard Russon, Yuval Fledel: NTFS Documentation. das Dateisystem unterstützt die Unterscheidung, die Umsetzung ist jedoch wählbar; unter Windows standardmäßig nicht unterschieden, seit Windows 10 Build 17107 (bzw. 1803) je Ordner einstellbar FAT mit VFAT (Windows) Disketten, Festplatten, USB-Sticks, Speicherkarten 255 Unicode gespeichert, jedoch unter Windows keine Unterscheidung (z. B. unter diversen Unix-artigen Systemen schon, oft einstellbar; beispielsweise ist die Unterscheidung unter Linux-Kernel 6.0 abgeschaltet) UDF Optischer Datenspeicher (CDs, DVDs, BRs) 255 Unicode gespeichert; Unterscheidung betriebssystemabhängig HFS+ Festplatten 255 Unicode (UTF-16) keine Unterscheidung in Variante HFS (Standard), mit optionaler strikter Unterscheidung (als HFSX) ISO 9660:​1999 CDs, DVDs 179–221, je nach sonstigen Attributen ASCII/​unspezifiziert betriebssystemabhängig exFAT Speicherkarten, USB-Sticks 255 Unicode (UTF-16) gespeichert; Unterscheidung betriebssystemabhängigBtrfsFestplatten, SSDs255 Unicode Unterscheidung; mit WinBtrfs unter Windows standardmäßig keine Unterscheidung bzw. in Windows 10 je Ordner einstellbar ReFS Festplatten 32.000 Unicode das Dateisystem unterstützt die Unterscheidung, die Umsetzung ist jedoch wählbar APFS SSDs Unicode das Dateisystem unterstützt die Unterscheidung; unter iOS wird standardmäßig unterschieden, unter macOS werden Dateinamen standardmäßig normalisiert

Implementierung Dateisysteme haben bestimmte interne Strukturen, die meist der des Referenzsystems entsprechen, für das das Dateisystem entwickelt wurde. So besitzt ein Dateisystem meist keine Rechteverwaltung, wenn das Betriebssystem diese ebenfalls nicht kennt. Ein Beispiel dafür ist das Dateisystem FAT von PC DOS bzw. MS-DOS: da DOS selbst kein Mehrbenutzersystem ist, speichert es auch keine Zugriffsrechte für Dateien und Verzeichnisse. Ebenso verhält es sich mit Erstellungs- und Zugriffszeiten von Dateien, die in der systemüblichen Weise entweder als Lokalzeit oder als Universalzeit abgespeichert werden, oder bei der Konvention von Groß- und Kleinschreibung.

Groß- und Kleinschreibung

Die Unterscheidung zwischen Groß- und Kleinbuchstaben wird im Englischen als „“ bezeichnet. Bei der Verwendung von Dateinamen macht es einen großen Unterschied, ob ein System Dateinamen – mit strikter Unterscheidung – oder nicht- bzw. – ohne Unterscheidung – verarbeitet. Bei Systemen referenziert Dateiname (mit groß geschriebenem Anfangsbuchstaben) nicht dieselbe Datei wie dateiname (alles in Kleinbuchstaben) oder DATEINAME (alles in Großbuchstaben). Für den Anwender auf einem solchen System ist es essentiell sich an die Schreibweise in der Verzeichnisliste zu halten, denn nur wenn eine Datei mit dem Namen Dateiname auch wirklich existiert, kann sie auch geöffnet und verarbeitet werden. Existiert hingegen nur eine Datei mit demselben Namen in Kleinbuchstaben, dateiname, so gibt das System zu Recht einen Fehler aus, dass die Datei mit dem Namen Dateiname nicht existiert.

Historisch gesehen war UNIX, entwickelt Ende der 1960er und Anfang der 1970er Jahre, ein System, also mit strikter Unterscheidung zwischen Groß- und Kleinschreibung.

Anders war es bei den aufkommenden Personal Computern Ende der 1970er und Anfang der 1980er mit den Betriebssystemen CP/M und DOS auf IBM PCs und kompatiblen Computern sowie mit Mac OS auf der Apple-Macintosh-Plattform: diese sind traditionell . Öffnet ein Anwender oder eine Anwendung auf einem solchen System eine Datei namens Dateiname, so wird stattdessen dateiname (in Kleinschreibung) geöffnet, wenn die Datei bereits mit kleingeschriebenem aber sonst gleichem Dateinamen vorhanden ist. Umgekehrt verwehrt das System aber auch die Erstellung einer Datei mit dem Namen DATEINAME (und jeder anderen Schreibweise in Groß- und Kleinbuchstaben), da sich der Dateiname in jedem Fall durch zusätzliche Merkmale unterscheiden muss.

Für ein Computersystem bedeutet , dass es zusätzlichen Aufwand betreiben muss, da es Dateinamen bei jeder Anfrage in alle möglichen Groß- und Kleinschreibungen umformen muss, bis eine Datei dieses Namens gefunden wird. Eine Fehlermeldung, die Datei sei nicht vorhanden (bzw., bei einem Namenskonflikt: die Datei sei bereits vorhanden), kann ein solches System erst dann ausgeben, wenn es alle Möglichkeiten durchprobiert hat.

Ob ein System prinzipiell Dateinamen nutzt oder nicht hat auch Auswirkungen auf das verwendete (für das und mit dem Betriebssystem entwickelte) Dateisystem, denn wenn das Betriebssystem und dessen API grundsätzlich keine Unterscheidung macht, muss es diese auch nicht speichern. Umgekehrt ist es für Systeme jedoch absolut notwendig, die genaue Schreibweise im Dateisystem zu erhalten. Aktuelle Dateisysteme sind jedoch zumindest ausgelegt und erhalten die Schreibweise – damit ist es in den allermeisten Fällen ohne Probleme möglich auch System-fremde Dateisysteme mit System-üblichen Dateinamenskonventionen zu verwenden.

Interoperabilität Das Dateisystem FAT (in den Varianten FAT12, FAT16 und FAT32) ist auf fast allen Betriebssystemen implementiert. Weil das Dateisystem aber bestimmte Annahmen bezüglich des zugrunde liegenden Systems macht – und Dateinamen nur in Großbuchstaben speichert, werden diese z. B. auf unixoiden Betriebssystemen vom Dateisystemtreiber standardmäßig in Kleinbuchstaben umgewandelt. Mit der VFAT-Erweiterung wird diese Umwandlung nur dann vollzogen, wenn der Dateiname in der 8.3-Konvention und in Großbuchstaben im FAT vorliegt. Andere Erweiterungen für FAT, wie UMSDOS, implementieren eigenständig eine solche Umwandlung, wenn die Datei nicht auf Unix gespeichert wurde und im UMSDOS-Format vorgehalten wird. Da Unix/Linux allerdings zwischen Groß- und Kleinbuchstaben unterscheidet, wird eine Datei nur in der umgewandelten oder in der im VFAT gespeicherten Schreibweise erkannt.

Ein Beispiel: Unter Windows (mit VFAT, also ab Windows 95) wird eine Datei mit dem Namen Dateiname.Ext gespeichert. Diese wird unter Windows, weil Windows „“ ist, auch in einer anderen Schreibweise erkannt, beispielsweise in der Eingabeaufforderung mit del dateiname.ext gelöscht. Unter Linux wird genau diese Datei jedoch nur in der genauen Schreibweise Dateiname.Ext erkannt. Will man beispielsweise die Datei mit less anzeigen und vertippt sich z. B. bei der Dateinamenserweiterung: less Dateiname.ext, so gibt Linux die Fehlermeldung aus, dass die Datei nicht existiert.

Es kommt also nicht nur auf das Dateisystem an, sondern auch auf das Betriebssystem, und wie es mit den im Dateisystem vorgehaltenen Informationen (Dateiname, Rechte, Datum) umgeht. Unter Umständen kann z. B. ein Dateisystemtreiber zwar auf die Eigenheiten des Dateisystems eingehen, die Betriebssystemumgebung verhindert dies jedoch. Ein Beispiel ist der Umgang einer Unix-Shell mit Wildcards. Unter Linux ist im Dateisystemtreiber für AFFS die „case-insensitivity“ eingebaut, nicht jedoch in der Shell. Ist auf einem Amiga-„“ beispielsweise der Dateiname DateiName (mit teilweise Großbuchstaben) gespeichert, so kann dieser in der Unix-Shell mit rm dateiname (alles in Kleinbuchstaben) gelöscht werden, weil der Dateisystemtreiber die Umwandlung vollzieht. Gibt man jedoch rm dat* ein, wird DateiName nicht gelöscht, weil die Unix-Shell die Suche nach dem Dateinamen vollzieht – da diese „“ ist, wird keine Übereinstimmung gefunden, weil die Shell strikt zwischen Groß- und Kleinbuchstaben unterscheidet.affs-Dokumentation für den Linux-Kernel (englisch), Abschnitt „“; abgerufen am 12. Juni 2016.