Directory.CreateDirectory 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在指定的路徑中建立所有目錄。
多載
CreateDirectory(String) |
在指定的路徑建立所有目錄和子目錄 (如果這些目錄尚不存在)。 |
CreateDirectory(String, UnixFileMode) |
除非這些目錄已經存在,否則會使用指定的許可權,在指定的路徑中建立所有目錄和子目錄。 |
CreateDirectory(String, DirectorySecurity) |
在指定的路徑中建立所有目錄 (如果尚不存在),同時套用指定的 Windows 安全性。 |
CreateDirectory(String)
- 來源:
- Directory.cs
- 來源:
- Directory.cs
- 來源:
- Directory.cs
在指定的路徑建立所有目錄和子目錄 (如果這些目錄尚不存在)。
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
參數
- path
- String
要建立的目錄。
傳回
物件,表示指定之路徑的目錄。 不論指定之路徑的目錄是否已經存在,都會傳回這個物件。
例外狀況
呼叫端沒有必要的權限。
.NET Framework 和 2.1 之前的 .NET Core 版本:path
是長度為零的字串、只包含空格符,或包含一或多個無效的字元。 您可以使用 GetInvalidPathChars() 方法查詢無效字元。
-或-
path
前面只具有或包含冒號字元 (:)。
path
為 null
。
指定的路徑、檔案名稱,或兩者都超出系統定義的長度上限。
指定的路徑無效 (例如,它位於未對應的磁碟機上)。
path
包含不是磁碟機標籤 ("C:\") 一部分的冒號字元 (:)。
範例
下列範例會建立並刪除指定的目錄:
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
若要在目前目錄為 C:\Users\User1\Public\Html 時建立目錄 C:\Users\User1,請使用下列任一呼叫來確保反斜杠正確解譯:
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");
備註
在中 path
指定的任何和所有目錄都會建立,除非它們已經存在,或除非 的 path
某個部分無效。 如果目錄已經存在,這個方法就不會建立新的目錄,但它會 DirectoryInfo 傳回現有目錄的物件。
參數 path
會指定目錄路徑,而不是檔案路徑。
在建立目錄之前,尾端空格會從 參數結尾 path
移除。
您可以在具有寫入許可權的共用上,在遠端電腦上建立目錄。 支援 UNC 路徑;例如,您可以針對 指定下列專案 path
: \\2009\Archives\December
在 Visual Basic 和 \\\\2009\\Archives\\December
C# 中。
不支援建立只有冒號字元的目錄, (:) ,而且會導致 NotSupportedException
擲回 。
在 Unix 系統上,使用正斜線 (/) 作為路徑分隔符。
另請參閱
適用於
CreateDirectory(String, UnixFileMode)
- 來源:
- Directory.cs
- 來源:
- Directory.cs
- 來源:
- Directory.cs
除非這些目錄已經存在,否則會使用指定的許可權,在指定的路徑中建立所有目錄和子目錄。
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
參數
- path
- String
要建立的目錄。
- unixCreateMode
- UnixFileMode
列舉值的位元組合,指定用來建立目錄的 Unix 檔案模式。
傳回
物件,表示指定之路徑的目錄。 不論指定之路徑的目錄是否已經存在,都會傳回這個物件。
- 屬性
例外狀況
path
是長度為零的字串,或包含一或多個無效的字元。 您可以使用 GetInvalidPathChars() 方法查詢無效字元。
path
為 null
。
檔案模式無效。
呼叫端沒有必要的權限。
指定的路徑超過系統定義的最大長度。
path
是檔案。
的 path
元件不是目錄。
適用於
CreateDirectory(String, DirectorySecurity)
在指定的路徑中建立所有目錄 (如果尚不存在),同時套用指定的 Windows 安全性。
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
參數
- path
- String
要建立的目錄。
- directorySecurity
- DirectorySecurity
要套用至目錄的存取控制。
傳回
物件,表示指定之路徑的目錄。 不論指定之路徑的目錄是否已經存在,都會傳回這個物件。
例外狀況
呼叫端沒有必要的權限。
.NET Framework 和 2.1 之前的 .NET Core 版本:path
是長度為零的字串、只包含空格符,或包含一或多個無效的字元。 您可以使用 GetInvalidPathChars() 方法查詢無效字元。
-或-
path
前面只具有或包含冒號字元 (:)。
path
為 null
。
指定的路徑、檔案名稱,或兩者都超出系統定義的長度上限。
指定的路徑無效 (例如,它位於未對應的磁碟機上)。
path
包含不是磁碟機標籤 ("C:\") 一部分的冒號字元 (:)。
範例
下列範例會為兩個用戶帳戶建立具有存取規則的新目錄。
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
備註
使用此方法多載建立具有訪問控制的目錄,因此在套用安全性之前,無法存取目錄。
除非參數中 path
指定的任何目錄和所有目錄已經存在,或部分 的 path
目錄無效,否則會建立。 參數 path
會指定目錄路徑,而不是檔案路徑。 如果目錄已經存在,這個方法就不會建立新的目錄,但它會 DirectoryInfo 傳回現有目錄的物件。
在建立目錄之前,尾端空格會從 參數結尾 path
移除。
您可以在具有寫入許可權的共用上,在遠端電腦上建立目錄。 支援 UNC 路徑;例如,您可以針對 指定下列專案 path
: \\2009\Archives\December
在 Visual Basic 和 \\\\2009\\Archives\\December
C# 中。
不支援只使用冒號字元建立目錄, (:) ,並會導致 NotSupportedException
擲回 。