Directory.CreateDirectory Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria todos os diretórios em um caminho especificado.
Sobrecargas
CreateDirectory(String) |
Cria todos os diretórios e subdiretórios no caminho especificado, a menos que eles já existam. |
CreateDirectory(String, UnixFileMode) |
Cria todos os diretórios e subdiretórios no caminho especificado com as permissões especificadas, a menos que já existam. |
CreateDirectory(String, DirectorySecurity) |
Cria todos os diretórios no caminho especificado, a menos que eles já existam, aplicando a segurança do Windows especificada. |
CreateDirectory(String)
- Origem:
- Directory.cs
- Origem:
- Directory.cs
- Origem:
- Directory.cs
Cria todos os diretórios e subdiretórios no caminho especificado, a menos que eles já existam.
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
Parâmetros
- path
- String
O diretório a ser criado.
Retornos
Um objeto que representa o diretório no caminho especificado. Esse objeto é retornado, independentemente se já existir um diretório no caminho especificado.
Exceções
O chamador não tem a permissão necessária.
.NET Framework e versões do .NET Core anteriores à 2.1: path
é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars().
- ou -
path
é prefixado ou contém somente um caractere de dois-pontos (:).
path
é null
.
O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.
O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).
path
contém um caractere de dois-pontos (:) que não faz parte de um rótulo da unidade (“C:\”).
Exemplos
O exemplo a seguir cria e exclui o diretório especificado:
using namespace System;
using namespace System::IO;
int main()
{
// Specify the directory you want to manipulate.
String^ path = "c:\\MyDir";
try
{
// Determine whether the directory exists.
if ( Directory::Exists( path ) )
{
Console::WriteLine( "That path exists already." );
return 0;
}
// Try to create the directory.
DirectoryInfo^ di = 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 ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
// Specify the directory you want to manipulate.
string path = @"c:\MyDir";
try
{
// Determine whether the directory exists.
if (Directory.Exists(path))
{
Console.WriteLine("That path exists already.");
return;
}
// Try to create the directory.
DirectoryInfo di = 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 (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
finally {}
}
}
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
Para criar o diretório C:\Users\User1\Public\Html quando o diretório atual for C:\Users\User1, use qualquer uma das seguintes chamadas para garantir que a barra invertida seja interpretada corretamente:
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");
Directory::CreateDirectory("Public\\Html");
Directory::CreateDirectory("\\Users\\User1\\Public\\Html");
Directory::CreateDirectory("c:\\Users\\User1\\Public\\Html");
Comentários
Todos e todos os diretórios especificados em path
são criados, a menos que já existam ou a menos que alguma parte do path
seja inválida. Se o diretório já existir, esse método não criará um novo diretório, mas retornará um DirectoryInfo objeto para o diretório existente.
O path
parâmetro especifica um caminho de diretório, não um caminho de arquivo.
Espaços à direita são removidos do final do path
parâmetro antes de criar o diretório.
Você pode criar um diretório em um computador remoto, em um compartilhamento ao qual você tem acesso de gravação. Há suporte para caminhos UNC; por exemplo, você pode especificar o seguinte para path
: \\2009\Archives\December
no Visual Basic e \\\\2009\\Archives\\December
em C#.
Criar um diretório com apenas o caractere de dois-pontos (não há suporte para :) e fará com que um NotSupportedException
seja gerado.
Em sistemas Unix, use uma barra (/) como separador de caminho.
Confira também
- DirectoryInfo
- E/S de arquivo e de fluxo
- Como ler texto de um arquivo
- Como gravar texto em um arquivo
Aplica-se a
CreateDirectory(String, UnixFileMode)
- Origem:
- Directory.cs
- Origem:
- Directory.cs
- Origem:
- Directory.cs
Cria todos os diretórios e subdiretórios no caminho especificado com as permissões especificadas, a menos que já existam.
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
Parâmetros
- path
- String
O diretório a ser criado.
- unixCreateMode
- UnixFileMode
Uma combinação bit a bit dos valores de enumeração que especifica o modo de arquivo Unix usado para criar diretórios.
Retornos
Um objeto que representa o diretório no caminho especificado. Esse objeto é retornado, independentemente se já existir um diretório no caminho especificado.
- Atributos
Exceções
path
é uma cadeia de caracteres de comprimento zero ou contém um ou mais caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars().
path
é null
.
O modo de arquivo é inválido.
O chamador não tem a permissão necessária.
O caminho especificado excede o tamanho máximo definido pelo sistema.
path
é um arquivo .
Um componente do path
não é um diretório.
Aplica-se a
CreateDirectory(String, DirectorySecurity)
Cria todos os diretórios no caminho especificado, a menos que eles já existam, aplicando a segurança do Windows especificada.
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
Parâmetros
- path
- String
O diretório a ser criado.
- directorySecurity
- DirectorySecurity
O controle de acesso a ser aplicado ao diretório.
Retornos
Um objeto que representa o diretório no caminho especificado. Esse objeto é retornado, independentemente se já existir um diretório no caminho especificado.
Exceções
O chamador não tem a permissão necessária.
.NET Framework e versões do .NET Core anteriores à 2.1: path
é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco ou contém um ou mais caracteres inválidos. Consulte caracteres inválidos usando o método GetInvalidPathChars().
- ou -
path
é prefixado ou contém somente um caractere de dois-pontos (:).
path
é null
.
O caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.
O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).
path
contém um caractere de dois-pontos (:) que não faz parte de um rótulo da unidade (“C:\”).
Exemplos
O exemplo a seguir cria um novo diretório com regras de acesso para duas contas de usuário.
using System;
using System.IO;
using System.Security.AccessControl;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
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
Module Module1
Sub Main()
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 Module
Comentários
Use essa sobrecarga de método para criar um diretório com controle de acesso, portanto, não há nenhuma chance de o diretório ser acessado antes que a segurança seja aplicada.
Todos e todos os diretórios especificados no path
parâmetro são criados, a menos que já existam ou a menos que alguma parte do path
seja inválida. O path
parâmetro especifica um caminho de diretório, não um caminho de arquivo. Se o diretório já existir, esse método não criará um novo diretório, mas retornará um DirectoryInfo objeto para o diretório existente.
Espaços à direita são removidos do final do path
parâmetro antes de criar o diretório.
Você pode criar um diretório em um computador remoto, em um compartilhamento ao qual você tem acesso de gravação. Há suporte para caminhos UNC; por exemplo, você pode especificar o seguinte para path
: \\2009\Archives\December
no Visual Basic e \\\\2009\\Archives\\December
em C#.
Criar um diretório com apenas o caractere de dois-pontos (não há suporte para :) e faz com que um NotSupportedException
seja gerado.