Bagikan melalui


Directory.CreateDirectory Metode

Definisi

Membuat semua direktori dalam jalur tertentu.

Overload

CreateDirectory(String)

Membuat semua direktori dan subdirektori di jalur yang ditentukan kecuali sudah ada.

CreateDirectory(String, UnixFileMode)

Membuat semua direktori dan subdirektori di jalur yang ditentukan dengan izin yang ditentukan kecuali sudah ada.

CreateDirectory(String, DirectorySecurity)

Membuat semua direktori di jalur yang ditentukan, kecuali jika sudah ada, menerapkan keamanan Windows yang ditentukan.

CreateDirectory(String)

Sumber:
Directory.cs
Sumber:
Directory.cs
Sumber:
Directory.cs

Membuat semua direktori dan subdirektori di jalur yang ditentukan kecuali sudah ada.

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

Parameter

path
String

Direktori yang akan dibuat.

Mengembalikan

Objek yang mewakili direktori pada jalur yang ditentukan. Objek ini dikembalikan terlepas dari apakah direktori pada jalur yang ditentukan sudah ada.

Pengecualian

Direktori yang ditentukan oleh path adalah file.

-atau-

Nama jaringan tidak diketahui.

Pemanggil tidak memiliki izin yang diperlukan.

versi .NET Framework dan .NET Core yang lebih lama dari 2.1: path adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid. Anda bisa mengkueri karakter yang tidak valid dengan menggunakan metode .GetInvalidPathChars()

-atau-

path diawali dengan, atau berisi, hanya karakter titik dua (:).

pathadalah null.

Jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

Jalur yang ditentukan tidak valid (misalnya, ada di drive yang tidak dipetakan).

path berisi karakter titik dua (:) yang bukan bagian dari label drive ("C:\").

Contoh

Contoh berikut membuat dan menghapus direktori yang ditentukan:

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

Untuk membuat direktori C:\Users\User1\Public\Html saat direktori saat ini adalah C:\Users\User1, gunakan salah satu panggilan berikut untuk memastikan bahwa backslash ditafsirkan dengan benar:

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");

Keterangan

Setiap dan semua direktori yang ditentukan di path dibuat, kecuali sudah ada atau kecuali beberapa bagian path tidak valid. Jika direktori sudah ada, metode ini tidak membuat direktori baru, tetapi mengembalikan DirectoryInfo objek untuk direktori yang ada.

Parameter path menentukan jalur direktori, bukan jalur file.

Spasi berikutnya dihapus dari akhir path parameter sebelum membuat direktori.

Anda dapat membuat direktori di komputer jarak jauh, pada berbagi yang dapat Anda akses tulis. Jalur UNC didukung; misalnya, Anda dapat menentukan hal berikut untuk path: \\2009\Archives\December di Visual Basic, dan \\\\2009\\Archives\\December di C#.

Membuat direktori hanya dengan karakter titik dua (:) tidak didukung, dan akan menyebabkan NotSupportedException dilemparkan.

Pada sistem Unix, gunakan garis miring (/) sebagai pemisah jalur.

Lihat juga

Berlaku untuk

CreateDirectory(String, UnixFileMode)

Sumber:
Directory.cs
Sumber:
Directory.cs
Sumber:
Directory.cs

Membuat semua direktori dan subdirektori di jalur yang ditentukan dengan izin yang ditentukan kecuali sudah ada.

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

Parameter

path
String

Direktori yang akan dibuat.

unixCreateMode
UnixFileMode

Kombinasi bitwise dari nilai enumerasi yang menentukan mode file Unix yang digunakan untuk membuat direktori.

Mengembalikan

Objek yang mewakili direktori pada jalur yang ditentukan. Objek ini dikembalikan terlepas dari apakah direktori pada jalur yang ditentukan sudah ada.

Atribut

Pengecualian

path adalah string panjang nol, atau berisi satu atau beberapa karakter yang tidak valid. Anda bisa mengkueri karakter yang tidak valid dengan menggunakan metode .GetInvalidPathChars()

pathadalah null.

Mode file tidak valid.

Pemanggil tidak memiliki izin yang diperlukan.

Jalur yang ditentukan melebihi panjang maksimum yang ditentukan sistem.

path adalah file .

Komponen bukan path direktori.

Berlaku untuk

CreateDirectory(String, DirectorySecurity)

Membuat semua direktori di jalur yang ditentukan, kecuali jika sudah ada, menerapkan keamanan Windows yang ditentukan.

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

Parameter

path
String

Direktori yang akan dibuat.

directorySecurity
DirectorySecurity

Kontrol akses yang akan diterapkan ke direktori.

Mengembalikan

Objek yang mewakili direktori pada jalur yang ditentukan. Objek ini dikembalikan terlepas dari apakah direktori pada jalur yang ditentukan sudah ada.

Pengecualian

Direktori yang ditentukan oleh path adalah file.

-atau-

Nama jaringan tidak diketahui.

Pemanggil tidak memiliki izin yang diperlukan.

versi .NET Framework dan .NET Core yang lebih lama dari 2.1: path adalah string panjang nol, hanya berisi spasi kosong, atau berisi satu atau beberapa karakter yang tidak valid. Anda bisa mengkueri karakter yang tidak valid dengan menggunakan metode .GetInvalidPathChars()

-atau-

path diawali dengan, atau berisi, hanya karakter titik dua (:).

pathadalah null.

Jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

Jalur yang ditentukan tidak valid (misalnya, ada di drive yang tidak dipetakan).

path berisi karakter titik dua (:) yang bukan bagian dari label drive ("C:\").

Contoh

Contoh berikut membuat direktori baru dengan aturan akses untuk dua akun pengguna.

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

Keterangan

Gunakan metode ini kelebihan beban untuk membuat direktori dengan kontrol akses, sehingga tidak ada kemungkinan direktori dapat diakses sebelum keamanan diterapkan.

Setiap dan semua direktori yang ditentukan dalam path parameter dibuat, kecuali sudah ada atau kecuali beberapa bagian path tidak valid. Parameter path menentukan jalur direktori, bukan jalur file. Jika direktori sudah ada, metode ini tidak membuat direktori baru, tetapi mengembalikan DirectoryInfo objek untuk direktori yang ada.

Spasi berikutnya dihapus dari akhir path parameter sebelum membuat direktori.

Anda dapat membuat direktori di komputer jarak jauh, pada berbagi yang dapat Anda akses tulis. Jalur UNC didukung; misalnya, Anda dapat menentukan hal berikut untuk path: \\2009\Archives\December di Visual Basic, dan \\\\2009\\Archives\\December di C#.

Membuat direktori hanya dengan karakter titik dua (:) tidak didukung dan menyebabkan dilemparkan NotSupportedException .

Berlaku untuk