Bagikan melalui


DirectoryInfo.Create Metode

Definisi

Membuat direktori.

Overload

Create()

Membuat direktori.

Create(DirectorySecurity)

Membuat direktori menggunakan DirectorySecurity objek .

Create()

Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs

Membuat direktori.

public:
 void Create();
public void Create ();
member this.Create : unit -> unit
Public Sub Create ()

Pengecualian

Direktori tidak dapat dibuat.

Contoh

Contoh berikut memeriksa apakah direktori tertentu ada, membuat direktori jika tidak ada, dan menghapus direktori.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di = gcnew DirectoryInfo( "c:\\MyDir" );
   try
   {
      
      // Determine whether the directory exists.
      if ( di->Exists )
      {
         
         // Indicate that it already exists.
         Console::WriteLine( "That path exists already." );
         return 0;
      }
      
      // 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 );
   }

}
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 {}
    }
}
open System.IO

// Specify the directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"

try
    // Determine whether the directory exists.
    if di.Exists then
        // Indicate that it already exists.
        printfn "That path exists already."
    else
        // Try to create the directory.
        di.Create()
        printfn "The directory was created successfully."

        // 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 directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
        Try
            ' Determine whether the directory exists.
            If di.Exists Then
                ' Indicate that it already exists.
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' 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 e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

Keterangan

Setiap dan semua direktori yang ditentukan di path dibuat, kecuali beberapa bagian path tidak valid. Parameter path menentukan jalur direktori, bukan jalur file. Jika direktori sudah ada, metode ini tidak melakukan apa pun. Jika direktori tidak ada sebelum memanggil metode ini, maka informasi atribut yang di-cache tentang direktori akan dihapus jika pembuatan berhasil.

Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.

Lihat juga

Berlaku untuk

Create(DirectorySecurity)

Membuat direktori menggunakan DirectorySecurity objek .

public:
 void Create(System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public void Create (System.Security.AccessControl.DirectorySecurity directorySecurity);
member this.Create : System.Security.AccessControl.DirectorySecurity -> unit
Public Sub Create (directorySecurity As DirectorySecurity)

Parameter

directorySecurity
DirectorySecurity

Kontrol akses yang akan diterapkan ke direktori.

Pengecualian

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 dapat mengkueri karakter yang tidak valid dengan menggunakan GetInvalidPathChars() metode .

pathadalah null.

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

Jalur yang ditentukan tidak valid, seperti berada di drive yang tidak dipetakan.

Membuat direktori hanya dengan titik dua (karakter :) dicoba.

Contoh

Contoh kode berikut membuat direktori baru di dalam folder sementara pengguna dengan atribut keamanan direktori yang ditentukan:

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

Keterangan

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

Jika direktori sudah ada, metode ini tidak melakukan apa pun.

Untuk daftar tugas I/O umum, lihat Tugas I/O Umum.

Penting

Metode ini di-port ke .NET Core 3.1 sebagai metode FileSystemAclExtensions ekstensi kelas sebagai bagian System.Security.AccessControl dari rakitan: Create(DirectoryInfo, DirectorySecurity).

Berlaku untuk