DirectoryInfo.Create 方法

定義

建立目錄。

多載

Create()

建立目錄。

Create(DirectorySecurity)

使用 DirectorySecurity 物件建立目錄。

Create()

建立目錄。

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

例外狀況

無法建立目錄。

範例

下列範例會檢查指定的目錄是否存在、是否建立目錄(如果不存在),以及刪除目錄。

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 {}
    }
}
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

備註

如果目錄已經存在,這個方法不會執行任何動作。

如果在呼叫這個方法之前,目錄不存在,則如果建立成功,則會清除與目錄相關的任何快取屬性資訊。

如需一般 i/o 工作的清單,請參閱 一般 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

要套用至目錄的存取控制。

例外狀況

呼叫端沒有必要的權限。

.NET Framework 和 .net Core 版本早于2.1: path 為長度為零的字串、只包含空白字元,或包含一或多個不正確字元。 您可以使用 GetInvalidPathChars() 方法查詢無效字元。

pathnull

指定的路徑、檔案名稱,或兩者都超出系統定義的長度上限。

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

已嘗試只用冒號 (:) 字元建立目錄

範例

下列程式碼範例會使用指定的目錄安全性屬性,在使用者的暫存資料夾內建立新目錄:

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 工作的清單,請參閱 一般 i/o工作。

重要

此方法已移植到 .NET Core 3.1 做為元件的一部分之類別的擴充方法 FileSystemAclExtensions System.Security.AccessControlCreate(DirectoryInfo, DirectorySecurity)

適用於