Freigeben über


Gewusst wie: Erstellen einer Datei oder eines Ordners (C#-Programmierhandbuch)

Aktualisiert: November 2007

In diesem Beispiel werden ein Ordner und ein Unterordner auf einem Computer erstellt und anschließend eine neue Datei im Unterordner. Außerdem werden Daten in die Datei geschrieben.

Beispiel

public class CreateFileOrFolder
{
    static void Main()
    {
        // Specify a "currently active folder"
        string activeDir = @"c:\testdir2";

        //Create a new subfolder under the current active folder
        string newPath = System.IO.Path.Combine(activeDir, "mySubDir");

        // Create the subfolder
        System.IO.Directory.CreateDirectory(newPath);

        // Create a new file name. This example generates
        // a random string.
        string newFileName = System.IO.Path.GetRandomFileName();

        // Combine the new file name with the path
        newPath = System.IO.Path.Combine(newPath, newFileName);

        // Create the file and write to it.
        // DANGER: System.IO.File.Create will overwrite the file
        // if it already exists. This can occur even with
        // random file names.
        if (!System.IO.File.Exists(newPath))
        {
            using (System.IO.FileStream fs = System.IO.File.Create(newPath))
            {
                for (byte i = 0; i < 100; i++)
                {
                    fs.WriteByte(i);
                }
            }
        }

        // Read data back from the file to prove
        // that the previous code worked.
        try
        {
            byte[] readBuffer = System.IO.File.ReadAllBytes(newPath);
            foreach (byte b in readBuffer)
            {
                Console.WriteLine(b);
            }
        }
        catch (System.IO.IOException e)
        {
            Console.WriteLine(e.Message);
        }

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}

Falls der Ordner bereits vorhanden ist, führt CreateDirectory keine Aktion aus, und es wird keine Ausnahme ausgelöst. Jedoch überschreibt File.Create eine vorhandene Datei. Um das Überschreiben einer vorhandenen Datei zu verhindern, können Sie die OpenWrite()-Methode verwenden und die FileMode.OpenOrCreate-Option angeben, durch die Daten an die Datei angehängt werden und kein Überschreiben erfolgt.

Unter den folgenden Bedingungen wird möglicherweise eine Ausnahme ausgelöst:

  • Der Ordnername ist falsch formatiert. Er enthält beispielsweise unzulässige Zeichen oder besteht nur aus Leerzeichen (ArgumentException-Klasse). Verwenden Sie die Path-Klasse, um gültige Pfadnamen zu erstellen.

  • Der übergeordnete Ordner des zu erstellenden Ordners ist schreibgeschützt (IOException-Klasse).

  • Der Ordnername ist null (ArgumentNullException-Klasse).

  • Der Ordnername ist zu lang (PathTooLongException-Klasse).

  • Der Ordnername besteht nur aus einem Doppelpunkt ":" (PathTooLongException-Klasse).

Sicherheit

Eine Instanz der SecurityException-Klasse wird möglicherweise in nur teilweise vertrauenswürdigen Umgebungen ausgelöst.

Wenn der Benutzer keine Berechtigung zum Erstellen des Ordners hat, wird in dem Beispiel eine Instanz der UnauthorizedAccessException-Klasse ausgelöst.

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

System.IO

Weitere Ressourcen

Das Dateisystem und die Registrierung (C#-Programmhandbuch)