語言

DirectoryInfo.Create 方法

定義

建立目錄。

多載

名稱 Description
Create()

建立目錄。

Create(DirectorySecurity)

用 DirectorySecurity 物件建立目錄。

Create()

來源:
DirectoryInfo.cs
來源:
DirectoryInfo.cs
來源:
DirectoryInfo.cs
來源:
DirectoryInfo.cs
來源:
DirectoryInfo.cs

建立目錄。

public:
 void Create();
public void Create();
member this.Create : unit -> unit
Public Sub 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 {}
    }
}
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

備註

所有指定的 path 目錄都會被建立,除非其中 path 某些部分無效。 該 path 參數指定的是目錄路徑,而非檔案路徑。 如果目錄已經存在,這個方法就不會做任何事。 若在呼叫此方法前該目錄不存在,則在建立成功時,關於該目錄的任何快取屬性資訊都會被清除。

關於常見 I/O 任務的清單,請參見 Common I/O 任務。

另請參閱

適用於

Create(DirectorySecurity)

用 DirectorySecurity 物件建立目錄。

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)

參數

directorySecurity
DirectorySecurity

存取控制套用到目錄。

例外狀況

來電者沒有所需的權限。

指定的路徑、檔名或兩者都超過系統定義的最大長度。

指定的路徑無效,例如位於未對應的磁碟驅動器上。

嘗試建立僅包含冒號(:)字元的目錄。

範例

以下程式碼範例在使用者的暫存資料夾中建立一個新目錄,並設定指定的目錄安全屬性:

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

備註

利用此方法超載建立帶有存取控制的目錄,確保在安全措施生效前無法被存取。

如果目錄已經存在,這個方法就不會做任何事。

關於常見 I/O 任務的清單,請參見 Common I/O 任務。

Important

此方法被移植到 .NET Core 3.1,作為 FileSystemAclExtensions 類別的擴充方法,作為 System.Security.AccessControl 組合Create(DirectoryInfo, DirectorySecurity) 的一部分。

適用於