DirectoryInfo.Create Метод

Определение

Создает каталог.

Перегрузки

Create()

Создает каталог.

Create(DirectorySecurity)

Создает каталог с помощью объекта DirectorySecurity.

Create()

Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs
Исходный код:
DirectoryInfo.cs

Создает каталог.

public void Create ();

Исключения

Не удалось создать каталог.

Примеры

В следующем примере проверяется, существует ли указанный каталог, создается каталог, если он не существует, и удаляется каталог.

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");

        try
        {
            // Determine whether the directory exists.
            if (di.Exists)
            {
                // Indicate that it already exists.
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            di.Create();
            Console.WriteLine("The directory was created successfully.");

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {}
    }
}

Комментарии

Создаются все каталоги и все каталоги, указанные в , path если только часть не является недопустимой path . Параметр path указывает путь к каталогу, а не путь к файлу. Если каталог уже существует, этот метод не выполняет никаких действий. Если каталог не существовал до вызова этого метода, все кэшированные сведения об атрибутах каталога будут удалены в случае успешного создания.

Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Create(DirectorySecurity)

Создает каталог с помощью объекта DirectorySecurity.

public void Create (System.Security.AccessControl.DirectorySecurity directorySecurity);

Параметры

directorySecurity
DirectorySecurity

Элемент управления доступом, который необходимо применить к каталогу.

Исключения

У вызывающего объекта отсутствует необходимое разрешение.

платформа .NET Framework и .NET Core версий старше 2.1: path строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().

path имеет значение null.

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.

Указан недопустимый путь (например, он ведет на несопоставленный диск).

Предпринята попытка создать каталог с единственным знаком двоеточия (:).

Примеры

В следующем примере кода создается новый каталог во временной папке пользователя с указанными атрибутами безопасности каталога:

using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;
namespace ConsoleApp
{
    class Program
    {
        static void Main()
        {
            DirectorySecurity security = new DirectorySecurity();
            SecurityIdentifier identity = new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null);
            FileSystemAccessRule accessRule = new FileSystemAccessRule(identity, FileSystemRights.FullControl, AccessControlType.Allow);
            security.AddAccessRule(accessRule);
            string path = Path.Combine(Path.GetTempPath(), "directoryToCreate");
            DirectoryInfo dirInfo = new DirectoryInfo(path);
            dirInfo.Create(security);
        }
    }
}

Комментарии

Используйте эту перегрузку метода для создания каталога с контролем доступа, поэтому вероятность того, что доступ к каталогу не будет осуществляться до применения безопасности, нет.

Если каталог уже существует, этот метод не выполняет никаких действий.

Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.

Важно!

Этот метод был перенесен в .NET Core 3.1 в качестве метода FileSystemAclExtensions расширения класса в составе сборки System.Security.AccessControl : Create(DirectoryInfo, DirectorySecurity).

Применяется к

.NET Framework 4.8.1 и другие версии
Продукт Версии
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1