Directory.CreateDirectory Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает все каталоги в указанном пути.
Перегрузки
| Имя | Описание |
|---|---|
| CreateDirectory(String) |
Создает все каталоги и вложенные каталоги в указанном пути, если они еще не существуют. |
| CreateDirectory(String, UnixFileMode) |
Создает все каталоги и вложенные каталоги в указанном пути с указанными разрешениями, если они еще не существуют. |
| CreateDirectory(String, DirectorySecurity) |
Создает все каталоги в указанном пути, если они еще не существуют, применяя указанную безопасность Windows. |
CreateDirectory(String)
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
Создает все каталоги и вложенные каталоги в указанном пути, если они еще не существуют.
public:
static System::IO::DirectoryInfo ^ CreateDirectory(System::String ^ path);
public static System.IO.DirectoryInfo CreateDirectory(string path);
static member CreateDirectory : string -> System.IO.DirectoryInfo
Public Shared Function CreateDirectory (path As String) As DirectoryInfo
Параметры
- path
- String
Каталог для создания.
Возвращаемое значение
Объект, представляющий каталог по указанному пути. Этот объект возвращается независимо от того, существует ли каталог по указанному пути.
Исключения
Вызывающий объект не имеет требуемого разрешения.
Версии .NET Framework и .NET Core старше 2.1: path представляет собой строку нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().
–или–
path префикс с префиксом или содержит только символ двоеточия (:).
path равно null.
Указанный путь, имя файла или оба превышают определенную системой максимальную длину.
Указанный путь недопустим (например, он находится на несопоставленном диске).
path содержит символ двоеточия (:), который не является частью метки диска ("C:\").
Примеры
В следующем примере создается и удаляется указанный каталог:
using System;
using System.IO;
class Test
{
public static void Main()
{
// Specify the directory you want to manipulate.
string path = @"c:\MyDir";
// Determine whether the directory exists.
if (Directory.Exists(path))
{
Console.WriteLine("That path exists already.");
return;
}
DirectoryInfo di;
try
{
// Try to create the directory.
di = Directory.CreateDirectory(path);
Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("The caller does not have the required permission to create `{0}`", path);
return;
}
// Delete the directory.
di.Delete();
Console.WriteLine("The directory was deleted successfully.");
}
}
open System.IO
// Specify the directory you want to manipulate.
let path = @"c:\MyDir"
try
// Determine whether the directory exists.
if Directory.Exists path then
printfn "That path exists already."
else
// Try to create the directory.
let di = Directory.CreateDirectory path
printfn $"The directory was created successfully at {Directory.GetCreationTime path}."
// Delete the directory.
di.Delete()
printfn "The directory was deleted successfully."
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
' Specify the directory you want to manipulate.
Dim path As String = "c:\MyDir"
Try
' Determine whether the directory exists.
If Directory.Exists(path) Then
Console.WriteLine("That path exists already.")
Return
End If
' Try to create the directory.
Dim di As DirectoryInfo = Directory.CreateDirectory(path)
Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path))
' Delete the directory.
di.Delete()
Console.WriteLine("The directory was deleted successfully.")
Catch e As Exception
Console.WriteLine("The process failed: {0}.", e.ToString())
End Try
End Sub
End Class
Чтобы создать каталог C:\Users\User1\Public\Html , если текущий каталог — C:\Users\User1, используйте любой из следующих вызовов, чтобы убедиться, что обратная косая черта интерпретируется правильно:
Directory.CreateDirectory("Public\Html")
Directory.CreateDirectory("\Users\User1\Public\Html")
Directory.CreateDirectory("c:\Users\User1\Public\Html")
Directory.CreateDirectory("Public\\Html");
Directory.CreateDirectory("\\Users\\User1\\Public\\Html");
Directory.CreateDirectory("c:\\Users\\User1\\Public\\Html");
Комментарии
Все и все каталоги, указанные в path ней, создаются, если они уже существуют или если часть не является недопустимой path . Если каталог уже существует, этот метод не создает новый каталог, но возвращает DirectoryInfo объект для существующего каталога.
Параметр path указывает путь к каталогу, а не путь к файлу.
Конечные пробелы удаляются из конца path параметра перед созданием каталога.
Вы можете создать каталог на удаленном компьютере в общей папке, в которую у вас есть доступ на запись. Поддерживаются UNC-пути; Например, можно указать следующее для path: \\2009\Archives\December в Visual Basic и \\\\2009\\Archives\\December в C#.
Создание каталога только с символом двоеточия (:) не поддерживается и приведет NotSupportedException к возникновению ошибки.
В системах Unix используйте косую черту (/) в качестве разделителя путей.
См. также раздел
- DirectoryInfo
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Применяется к
CreateDirectory(String, UnixFileMode)
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
- Исходный код:
- Directory.cs
Создает все каталоги и вложенные каталоги в указанном пути с указанными разрешениями, если они еще не существуют.
public:
static System::IO::DirectoryInfo ^ CreateDirectory(System::String ^ path, System::IO::UnixFileMode unixCreateMode);
[System.Runtime.Versioning.UnsupportedOSPlatform("windows")]
public static System.IO.DirectoryInfo CreateDirectory(string path, System.IO.UnixFileMode unixCreateMode);
[<System.Runtime.Versioning.UnsupportedOSPlatform("windows")>]
static member CreateDirectory : string * System.IO.UnixFileMode -> System.IO.DirectoryInfo
Public Shared Function CreateDirectory (path As String, unixCreateMode As UnixFileMode) As DirectoryInfo
Параметры
- path
- String
Каталог для создания.
- unixCreateMode
- UnixFileMode
Побитовое сочетание значений перечисления, указывающее режим файлов Unix, используемый для создания каталогов.
Возвращаемое значение
Объект, представляющий каталог по указанному пути. Этот объект возвращается независимо от того, существует ли каталог по указанному пути.
- Атрибуты
Исключения
path — строка нулевой длины или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().
path равно null.
Недопустимый режим файла.
Вызывающий объект не имеет требуемого разрешения.
Указанный путь превышает определенную системой максимальную длину.
path — это файл.
Компонент не path является каталогом.
Применяется к
CreateDirectory(String, DirectorySecurity)
Создает все каталоги в указанном пути, если они еще не существуют, применяя указанную безопасность Windows.
public:
static System::IO::DirectoryInfo ^ CreateDirectory(System::String ^ path, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static System.IO.DirectoryInfo CreateDirectory(string path, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member CreateDirectory : string * System.Security.AccessControl.DirectorySecurity -> System.IO.DirectoryInfo
Public Shared Function CreateDirectory (path As String, directorySecurity As DirectorySecurity) As DirectoryInfo
Параметры
- path
- String
Каталог для создания.
- directorySecurity
- DirectorySecurity
Управление доступом, применяемое к каталогу.
Возвращаемое значение
Объект, представляющий каталог по указанному пути. Этот объект возвращается независимо от того, существует ли каталог по указанному пути.
Исключения
Вызывающий объект не имеет требуемого разрешения.
Версии .NET Framework и .NET Core старше 2.1: path представляет собой строку нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов. Вы можете запросить недопустимые символы с помощью метода GetInvalidPathChars().
–или–
path префикс с префиксом или содержит только символ двоеточия (:).
path равно null.
Указанный путь, имя файла или оба превышают определенную системой максимальную длину.
Указанный путь недопустим (например, он находится на несопоставленном диске).
path содержит символ двоеточия (:), который не является частью метки диска ("C:\").
Примеры
В следующем примере создается новый каталог с правилами доступа для двух учетных записей пользователей.
using System;
using System.IO;
using System.Security.AccessControl;
partial class Program
{
static void DirectorySecurityExample()
{
DirectorySecurity securityRules = new DirectorySecurity();
securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account1", FileSystemRights.Read, AccessControlType.Allow));
securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow));
DirectoryInfo di = Directory.CreateDirectory(@"C:\destination\NewDirectory", securityRules);
}
}
open System.IO
open System.Security.AccessControl
let securityRules = DirectorySecurity()
securityRules.AddAccessRule(FileSystemAccessRule(@"Domain\account1", FileSystemRights.Read, AccessControlType.Allow))
securityRules.AddAccessRule(FileSystemAccessRule(@"Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow))
let di = Directory.CreateDirectory(@"C:\destination\NewDirectory", securityRules)
Imports System.IO
Imports System.Security.AccessControl
Partial Class Program
Shared Sub DirectorySecurityExample()
Dim securityRules As DirectorySecurity = New DirectorySecurity()
securityRules.AddAccessRule(New FileSystemAccessRule("Domain\account1", FileSystemRights.Read, AccessControlType.Allow))
securityRules.AddAccessRule(New FileSystemAccessRule("Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow))
Dim di As DirectoryInfo = Directory.CreateDirectory("C:\destination\NewDirectory", securityRules)
End Sub
End Class
Комментарии
Используйте эту перегрузку метода для создания каталога с контролем доступа, поэтому невозможно получить доступ к каталогу перед применением безопасности.
Все каталоги, указанные в параметре path , создаются, если они уже существуют или не path являются недопустимыми. Параметр path указывает путь к каталогу, а не путь к файлу. Если каталог уже существует, этот метод не создает новый каталог, но возвращает DirectoryInfo объект для существующего каталога.
Конечные пробелы удаляются из конца path параметра перед созданием каталога.
Вы можете создать каталог на удаленном компьютере в общей папке, в которую у вас есть доступ на запись. Поддерживаются UNC-пути; Например, можно указать следующее для path: \\2009\Archives\December в Visual Basic и \\\\2009\\Archives\\December в C#.
Создание каталога только с символом двоеточия (:) не поддерживается и вызывает NotSupportedException исключение.