Share via


Procedura: creare un file o una cartella (Guida per programmatori C#)

In questo esempio vengono create una cartella e una sottocartella in un computer, quindi viene creato un nuovo file nella sottocartella e vengono scritti dei dati nel file.

Esempio

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();
    }
}

Se la cartella esiste già, CreateDirectory non produce effetti e non vengono generate eccezioni. Tuttavia, File.Create sovrascrive qualsiasi file esistente. Per evitare di sovrascrivere un file esistente, è possibile utilizzare il metodo OpenWrite e specificare l'opzione FileMode.OpenOrCreate tramite cui il file verrà aggiunto anziché sovrascritto.

Le seguenti condizioni possono generare un'eccezione:

  • Il formato del nome della cartella non è corretto. È possibile ad esempio che contenga caratteri non validi o solo uno spazio vuoto (classe ArgumentException). Utilizzare la classe Path per creare nomi di percorso validi.

  • La cartella padre della cartella da creare è di sola lettura (classe IOException).

  • Il nome della cartella è null (classe ArgumentNullException).

  • Il nome della cartella è troppo lungo (classe PathTooLongException).

  • Il nome della cartella è composto solo dai due punti, ":" (classe PathTooLongException).

Sicurezza

È possibile che venga generata un'istanza della classe SecurityException in situazioni di attendibilità parziale.

Se l'utente non dispone dell'autorizzazione per creare la cartella, nell'esempio verrà generata un'istanza della classe UnauthorizedAccessException.

Vedere anche

Riferimenti

System.IO

Concetti

Guida per programmatori C#

Altre risorse

File system e Registro di sistema (Guida per programmatori C#)