# Datei

Eine Datei (englisch file) ist in der Informationstechnologie die Zusammenfassung gleichartiger digitaler Daten, die zum Speichern auf Datenträgern oder Speichermedien, zur Wiedergabe, zum und zur Datenübertragung dient und durch einen Dateinamen identifiziert wird.

## Etymologie

Das Wort „Datei“ ist nicht erst durch die Informationstechnologie entstanden, sondern war auch bereits zuvor bekannt. Dem Duden zufolge ist die Datei ein „nach zweckmäßigen Kriterien geordneter, zur Aufbewahrung geeigneter Bestand an sachlich zusammengehörenden Belegen oder anderen Dokumenten.“ Das Wort „Datei“ ist ein Kunstwort aus Daten und Kartei, weil eine Kartei vergleichbar aus Karteikarten mit einheitlicher Inhaltsstruktur besteht. Der deutsche Begriff „Datei“ ist deutlich enger gefasst als die englische Übersetzung (englisch file), welche oft auch eine (Papier-)Akte, eine (Papier-)Kartei oder einen Karteikasten beschreibt. Gegebenenfalls ist eine Präzisierung auf englisch data file oder englisch computer file notwendig.

## Allgemeines

In der Informationstechnologie ist die Datei eine Menge zusammengehöriger Informationen, die in einem Computer oder auf einem Datenträger unter einem Dateinamen so gespeichert sind, dass sie von einem Betriebssystem oder einem geeigneten Computerprogramm erschlossen werden können. Es handelt sich um die Zusammenfassung gleichartiger Daten zum Zweck der gemeinsamen Handhabung. Die Datei wird oft in Datensätze unterteilt, um die Übersicht zu erhalten.

## Arten

Nach dem Verwendungszweck kann unterschieden werden zwischen:
* Eine Arbeitsdatei nimmt Daten von einem Datenverarbeitungsprozess entgegen und übergibt sie an einen anderen Prozess;
* eine Ausgabedatei enthält Ausgabedaten;
* Auslagerungsdatei: verschiedene Betriebssysteme verwenden im Rahmen ihrer Speicherverwaltung eine Auslagerungsdatei, um Prozessen einen größeren Adressraum zur Verfügung stellen zu können als durch den physisch vorhandenen Arbeitsspeicher eigentlich möglich wäre.
* Die Bewegungsdatei enthält Primärdaten (Bewegungsdaten);
* ein Dateianhang ist die einer E-Mail beigefügte Datei.
* Gerätedatei: ermöglicht eine einfache Kommunikation zwischen Userspace (zum Beispiel gewöhnliche Anwenderprogramme) und dem Kernel und damit letztlich der Hardware eines Computers.
* Programmdatei: enthält Programmbefehle zur Verarbeitung von Daten.
* Die Stammdatei enthält Stammdaten.
* Temporäre Dateien werden vom Betriebssystem oder von anderen Programmen verwendet und dienen zur zeitlich begrenzten Speicherung von Daten.
* Versteckte Datei: Wird in einem Betriebssystem bei bestimmten Anwendungen ausgeblendet und ist für den Nutzer nicht sichtbar.
Nach der Ausführbarkeit wird unterschieden zwischen
* ausführbaren Dateien:
** Programme in Maschinensprache,
** Programme in Skriptsprachen,
** Programme in einem Zwischencode (Bytecode);
* nicht ausführbaren Dateien:
** Programme im Quelltext,
** Audiodateien,
** Bilddateien,
** Datenbankdateien,
** Dateiverknüpfungen,
** Grafikdateien,
** Textdateien,
** Videodateien,
** allgemein: Binärdateien (z. B. von proprietären Programmen zur Datenspeicherung verwendet).
Wegen des unterschiedlichen Inhalts und der technisch unterschiedlichen Wiedergabe weisen diese Dateien verschiedene Dateiformate auf.
Moderne Dateisysteme unterstützen auch sogenannte Sparse-Dateien: Nur mit Daten gefüllte Abschnitte einer (großen) Datei werden tatsächlich gespeichert; die dazwischen liegenden „freien Bereiche“ werden nicht gespeichert und als „mit Null-Bytes gefüllt“ angenommen/bewertet.
Manche Dateisysteme bieten ferner an, Dateien transparent zu komprimieren oder zu verschlüsseln („transparent“: Das lesende/bearbeitende Programm kann die Datei normal verwenden, als ob die Datei nicht komprimiert/verschlüsselt wäre – es „sieht durch diesen Vorgang ungestört hindurch“).
Möglichkeiten, das Dateiformat zu kennzeichnen, beinhalten
* eine Kennzeichnung durch das Dateisystem (beispielsweise ein Ausführbarkeits-Flag)
* eine Kennzeichnung innerhalb der Daten (beispielsweise <?xml version="1.0" am Anfang, siehe auch MIME-Typ, Magische Zahl)
* eine Kennzeichnung im Dateinamen bzw. als Dateinamenserweiterung (beispielsweise .jpg, .txt)
* Speicherung in bestimmten Verzeichnissen (beispielsweise /usr/share/doc)
* eine Resource Fork und andere Metainformationen (beispielsweise beim klassischen Mac OS)
Eine solche Kennzeichnung ist teilweise obligatorisch, teilweise dient sie lediglich der Orientierung des Benutzers. Oft fehlen Kennzeichnungen jeder Art; für solche Situationen gibt es spezielle Programme, die den Typ einer Datei zu bestimmen versuchen. Im Unix-Umfeld ist dafür z. B. der Befehl file sehr verbreitet.

## Technische Aspekte

In der elektronischen Datenverarbeitung ist die Datei eine Menge von Datensätzen mit identischem oder kompatiblen Datenformat, die innerhalb eines Datenspeichers fixiert und nach einem Ordnungsmerkmal geordnet sind. Mit dem Begriff „Datei“ wird auch ausgedrückt, dass sich die Datenbestände auf einem maschinenlesbaren Datenträger befinden.

### Dateiinhalt

Der Inhalt jeder Datei ist zunächst eine eindimensionale Aneinanderreihung von Bits, die normalerweise in Datenblöcken zusammengefasst interpretiert werden. Erst der Anwender einer Datei bzw. ein Anwendungsprogramm oder das Betriebssystem selbst interpretieren diese Bit- oder Bytefolge beispielsweise als ein ausführbares Programm, ein Bild einen Text oder eine Tonaufzeichnung. Eine Datei besitzt also ein Dateiformat.

### Dateiformate

Die vom Nutzer angelegten Dateien lassen sich im Hinblick auf die gespeicherten Inhalte wie folgt einteilen:
| Dateityp | Dateiinhalt |
| Audiodatei | Musik, Geräusche, Sprache |
| Bilddatei | unbewegte Bilder, Fotos, Grafiken, Zeichnungen |
| Textdatei | darstellbare Zeichen, insbesondere Buchstaben, Zahlzeichen und Sonderzeichen |
| Videodatei | bewegte Bilder und gegebenenfalls ein Begleitton |
Das Anwendungsprogramm identifiziert den jeweiligen Dateityp an der Dateiendung, die hinter dem Dateinamen von diesem durch einen Punkt getrennt ist. An der Dateiendung lässt sich für den Nutzer meist erkennen, welche digitalen Daten gespeichert sind und für welches Programm sie angelegt wurde. Dateiendungen .bat (Batch-Datei) oder .sys (Systemdatei) dienen dem Betrieb eines Computers und werden direkt vom Betriebssystem geladen und ausgeführt.

### Aufbau

Eine Datei setzt sich allgemein zusammen aus dem Dateikopf und dem eigentlichen Dateiinhalt. Im Dateikopf (englisch header) befinden sich gegebenenfalls Metadaten (insbesondere Steuerinformationen und Eigenschaften) über die enthaltenen Daten.

### Dateimanager

Dateien werden von einem Dateimanager eines Betriebssystems verwaltet. Es handelt sich um ein Computerprogramm, mit dem Dateien und Verzeichnisse verwaltet werden können. In grafischen Dateimanagern wie Finder, Windows-Explorer, Nautilus oder Dolphin werden Dateien gewöhnlich als Liste oder Symbole auf einem Arbeitsblatt (Fenster, Ordner u. a.) dargestellt.

### Dateiverknüpfung

Eine Dateiverknüpfung ist eine Verknüpfung, die auf eine andere Datei oder ein Verzeichnis verweist.

## Dateinutzung
### Speichern

Das Speichern einer Datei geschieht mit Hilfe eines Datenspeichers, der ein bestimmtes Dateiformat unterstützt. Dazu wird das Menü „Speichern“ ausgewählt, das für die Speicherung sorgt. Moderne Betriebssysteme ordnen über das Dateiformat Anwendungen zu, welche die Dateien interpretieren können. Die Speicherung kann auf einem Datenträger oder der Festplatte erfolgen.

### Wiedergabe

Die Wiedergabe kann entweder auf einem Computer oder durch spezifische, vom Dateiformat abhängige Wiedergabegeräte erfolgen.

### Datenübertragung

Die Datenübertragung über das Internet (durch Download bzw. Upload) ist für den Laien kompliziert, zumal die Prozesse im Hintergrund ablaufen. Das Transmission Control Protocol (TCP) zerlegt eine zu versendende Datei in einzelne kleinere Datenpakete und versendet diese getrennt voneinander über das Internet. Dabei kann ein Datenpaket verschiedene Knotenpunkte im Internet (wie Hostrechner, Server) durchlaufen, weil an jedem Knotenpunkt der optimale Weg für das Paket neu bestimmt wird. Da unterwegs die ursprüngliche Reihenfolge nicht eingehalten werden muss, hat das TCP auch die Aufgabe, die ursprüngliche Reihenfolge beim empfangenden Endgerät wiederherzustellen. Das Internet Protocol (IP) regelt die korrekte Adressierung der Datenpakete, damit die im Internet angeschlossenen Computer eindeutig identifiziert werden können. Die Datenübertragung der digitalen Daten beginnt mit dem Upload beim Absender und endet mit dem Download beim Empfänger.

### Datenkompression

Bei großen Datenmengen ist eine Datenkompression möglich, um den Speicherplatz zu minimieren.

### Dateikonverter

Dateikonverter dienen dazu, eine Datei in ein anderes Dateiformat umzuwandeln als dem Ursprungsformat.

## Dateisysteme

Dateien werden in den meisten Betriebssystemen über Dateisysteme verwaltet. Ein Dateisystem verwaltet das Speichermedium, indem in Listen vermerkt wird, welche Bereiche des Mediums durch welche Dateien belegt sind, welche Bereiche frei sind, sowie oft Protokolle zu geplanten und/oder abgeschlossenen Änderungen.
Obwohl eine Aufgabe des Dateisystems darin besteht, vom konkreten Speichermedium zu abstrahieren („alle gleich zu behandeln“), sind doch viele Dateisysteme an die üblichen technischen Eigenschaften der Speichermedien angepasst (z. B. Blockgröße 512 Byte für Festplatten).
Für die meisten Dateisysteme ist 1 Byte die kleinste Verwaltungseinheit, d. h., die Länge des Dateiinhalt-Bitstroms muss auf ganze Bytes aufgehen (wobei im Allgemeinen auch 0 Byte = 0 Bit erlaubt sind).
Das Dateisystem verwaltet neben Verzeichnissen mit Dateinamen und -speicherort fast immer noch weitere Dateiattribute. Zu diesen gehören häufig der Dateityp (Verzeichnis, normale Datei, spezielle Datei), die Dateigröße (Anzahl der Bytes in der Datei), Schreib- und Leserechte, Zeitstempel („Datum“, der Erzeugung, des letzten Zugriffs und der letzten Änderung) sowie gegebenenfalls noch andere Informationen. Eine Datei kann in vielen Dateisystemen durch ein Attribut als versteckte Datei gekennzeichnet werden.
Die in Dateinamen verwendbaren Zeichen sind abhängig von Dateisystem, Betriebssystem und gegebenenfalls Sprachoptionen. Beispielsweise dürfen bei Unix-kompatiblen Dateisystemen in einem Dateinamen kein Schrägstrich / und kein Nullzeichen stehen. Bei anderen Betriebssystemen sind wiederum unterschiedliche Zeichen im Dateinamen nicht erlaubt. Oft ist das jedoch keine Einschränkung des „physischen“ Dateisystems, da bei Verwendung desselben Dateisystems auf einem anderen Betriebssystem diese Zeichen normal gespeichert werden können. Der Zugriff auf derartige Dateien ist dann wegen des unzulässigen Dateinamens auf dem jeweils anderen Betriebssystem üblicherweise nicht möglich, wodurch auch keine Möglichkeit besteht, die Datei umzubenennen oder zu löschen. Auch können die Zeichen unterschiedlich codiert sein, sodass das Betriebssystem auch verwendeten Zeichensatz für die Dateinamen unterstützen muss, um diese richtig anzuzeigen. Unicode wird von vielen historischen Betriebssystemen und manchen damit verbundenen Dateisystemen nicht unterstützt. Ferner ist die Länge des Dateinamens z. B. bei Unix-artigen Systemen auf 255 Zeichen begrenzt. Derartige Begrenzungen finden sich sowohl in den Strukturen des Dateisystems als auch im Betriebssystem selbst, das diese verarbeitet. Zusätzlich dazu haben Betriebssysteme auch ein Limit für den gesamten Dateipfad inklusive Dateinamen – ist dieser unterschiedlich von einem Betriebssystem zum anderen, kann beim Datenaustausch der Zugriff auf Dateien in zu langen Pfaden scheitern.

## Bedeutung und Nutzung

Dateien ermöglichen einen einfachen Austausch der Daten mit anderen Programmen, Prozessen oder anderen Nutzern. Alternative Methoden zu Datenablage und -austausch sind Datenbanken und zunehmend auch cloudbasierte Speicher, die die Daten meist ebenfalls als Dateien verwalten.
Bei Anwendungsprogrammen werden oft Dateien automatisch beim Start eingelesen (z. B. Voreinstellungen, Konfiguration) und/oder der Nutzer wählt explizit eine zu „ladende“ Datei. Beispielsweise kann ein Text unter einem Namen (der „Dateiname“) in einem Datei-Verwaltungssystem („Dateisystem“) auf einem Datenträger abgelegt sein und durch ein Textverarbeitungsprogramm nach dem Laden durch den Benutzer bearbeitet werden. Wenn der Benutzer den Befehl zur Speicherung auslöst, werden die Daten (hier der Text) in der Datei auf dem Speichermedium aktualisiert und die alte Version damit überschrieben. Mitunter bieten Programme weitere Möglichkeiten im Umgang mit Dateien:
* Das „Speichern als“ dient der Speicherung unter neuem Namen, auf anderem Datenträger oder in einem anderen Dateiformat;
* Datenverlust kann ggf. vermieden werden durch regelmäßige automatische Zwischenspeicherung;
* Warnung beim Beenden des Programms ohne vorheriges Speichern der Daten;
* regelmäßiges automatisches Speichern jeglicher Änderungen in der Cloud;
* gleichzeitiges Bearbeiten der Datei mit anderen Benutzern.
Mitunter können auch Metadaten in der Datei selbst einem Datenverlust vorbeugen.
Eine Datei besitzt eine innere Struktur sowie externe Attribute bzgl. ihrer Speicherung. Die innere Struktur – das Datenformat – wird meist allein von dem Programm kontrolliert, welches diese Datei speichert und bearbeitet. Die externen Attribute sind vor allem ein Name, der auch der Verwaltung der Ablage dient, sowie allgemeine Attribute für Dateien beliebigen Typs; diese werden meist von dem Dateisystem als Teil des Betriebssystems kontrolliert. Dateien machen Daten leicht kopierbar und transportabel. Hiermit wird ein Datenaustausch möglich, der unabhängig von den eigentlichen Programmen zur Bearbeitung der Daten ist.