DirectoryInfo.Create 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立目錄。
多載
| 名稱 | Description |
|---|---|
| Create() |
建立目錄。 |
| Create(DirectorySecurity) |
用 DirectorySecurity 物件建立目錄。 |
Create()
建立目錄。
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) 的一部分。