[C#] Datei erstellen / anlegen

Drucken
( 0 Votes ) 
Hauptkategorie: Programmieren Kategorie: C#
Erstellt am 20.11.2012 Zuletzt aktualisiert am 20.11.2012 Geschrieben von Jonny132
Eine Datei zu erstellen ist dank der .NET - Technologie nicht schwer. Dabei kann die Datei gezielt auf Byte-Ebene erstellt werden. Um dies Funktionalität nutzen zu können ist es Ratsam ein using für den System.IO - Namespace einzufügen.
using System.IO;
Dieser Namespace enhält auch die FileStream-Klasse, welche es uns ermöglicht eine Datei zu erstellen.
Wie das geht, zeige ich euch anhand eines Simplen Beispiels.

Datei erstellen:
          string filePath = @"C:\temp\test.ttt";
          using (FileStream stream = File.Create(filePath))
          {
            byte[] data = new byte[]{20,30,40};
            stream.Write(data, 0, data.Length);
            stream.Flush();
          }

          FileInfo info = new FileInfo(filePath);
          MessageBox.Show("Es wurde ein Ordner mit dem Namen " + info.Name
            + " im Pfad " + info.Directory.FullName
            + " mit der größe von " + info.Length + " Bytes erstellt.");
Wie ihr seht, benützen wir für das FileStream-Objekt ein using-Block, damit das Objekt nach Benutzung auch wieder korrekt freigegeben wurde. Als Parameter müsst ihr den gewollten Dateinamen angeben.

Damit wir auch ein paar Daten haben, die wir schreiben könne, erstellen wir ein Byte-Array mit ein paar Werten.
Dieses ByteArray können wir der Write()-Methode des FileStream übergeben. Als zweiten Parameter geben wir die Startposition an. Da es sich um eine neu erstellte Datei handelt, ist diese immer 0. Im dritten Parameter wird noch gesagt wie viele Bytes geschrieben werden sollen. Wir wollen natürlich das ganze ByteArray in die Datei schreiben, also nehmen wir einfach dessen Länge.

Um den Schreibvorgang abzuschliessen und schlussendlich auf ein Medium zu schreiben, rufen wir die Flush()-Methode auf. Dank des using um den FileStream, müssen wir uns nicht um das schliessen des FileStreams kümmern.

Die File-Klasse bietet uns jedoch auch noch eine Vereinfachung an die unseren Code nochmals etwas schmaler macht.
Und zwar können wir einfach die WriteAllBytes()-Methode verwenden, welche genau dasselbe erledigt, uns jedoch nicht die Freiheit gibt die Daten eventuell noch zu bearbeiten oder auch an verschiedenen Stellen einzufügen.

Vereinfachtes Beispiel:
          string filePath = @"C:\temp\test.ttt";
          byte[] data = new byte[]{20,30,40};
          File.WriteAllBytes(filePath, data);

Zur Überprüfung können wir im Nachhinein noch ein FileInfo-Objekt erstellen, welches dann die Infos der gerade erstellten Datei enthält.

C# Datei erstellen 

Siehe auch:
[C#] Ordner erstellen / anlegen
[C#] Textdatei erstellen / anlegen


    Veröffentlichen Sie ihre Kommentare ...