Esta documentación está archivada y no tiene mantenimiento.

Cómo: Crear un archivo o una carpeta (Guía de programación de C#)

Actualización: noviembre 2007

En este ejemplo se crean una carpeta y una subcarpeta en un equipo y, a continuación, se crea un nuevo archivo en la subcarpeta y se escriben algunos datos en el archivo.

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


Si la carpeta existe ya, CreateDirectory no hace nada y no se produce ninguna excepción. Sin embargo, File.Create sobrescribe cualquier archivo existente. Para evitar sobrescribir un archivo existente, puede usar el método OpenWrite() y especificar la opción FileMode.OpenOrCreate que hará que el archivo se anexe en lugar de sobrescribirse.

Las condiciones siguientes pueden producir una excepción:

  • El nombre de la carpeta es incorrecto. Por ejemplo, contiene caracteres ilegales o está compuesto sólo por espacios en blanco (clase ArgumentException). Utilice la clase Path para crear nombres de ruta de acceso válidos.

  • La carpeta principal o la carpeta que se va a crear es de sólo lectura (clase IOException).

  • El nombre de la carpeta es null (clase ArgumentNullException).

  • El nombre de la carpeta es demasiado largo (clase PathTooLongException).

  • El nombre de carpeta contiene sólo un signo de dos puntos, ":" (clase PathTooLongException).

Una instancia de la clase SecurityException se puede producir en entornos de confianza parcial.

Si el usuario no tiene permiso para crear la carpeta, el ejemplo producirá una instancia de la clase UnauthorizedAccessException.

Mostrar: