FileSystemAclExtensions.Create Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
Create(DirectoryInfo, DirectorySecurity) |
Belirtilen dizin güvenliğiyle oluşturulduğundan emin olarak yeni bir dizin oluşturur. Dizin zaten varsa hiçbir işlem yapılmaz. |
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Belirtilen özellikler ve güvenlik ayarlarıyla oluşturulduğundan emin olarak yeni bir dosya akışı oluşturur. |
Create(DirectoryInfo, DirectorySecurity)
Belirtilen dizin güvenliğiyle oluşturulduğundan emin olarak yeni bir dizin oluşturur. Dizin zaten varsa hiçbir işlem yapılmaz.
public:
[System::Runtime::CompilerServices::Extension]
static void Create(System::IO::DirectoryInfo ^ directoryInfo, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static void Create (this System.IO.DirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member Create : System.IO.DirectoryInfo * System.Security.AccessControl.DirectorySecurity -> unit
<Extension()>
Public Sub Create (directoryInfo As DirectoryInfo, directorySecurity As DirectorySecurity)
Parametreler
- directoryInfo
- DirectoryInfo
Henüz var olmayan ve yöntemi tarafından oluşturulacak bir dizin.
- directorySecurity
- DirectorySecurity
Dizinin erişim denetimi ve denetim güvenliği.
Özel durumlar
directoryInfo
veya directorySecurity
şeklindedir null
.
Yolun bir bölümü bulunamadı.
Yola erişim reddedildi.
Örnekler
Aşağıdaki kod örneği, belirtilen dizin güvenlik öznitelikleriyle kullanıcının geçici klasörünün içinde yeni bir dizin oluşturur:
using System.IO;
using System.Runtime.Versioning;
using System.Security.AccessControl;
using System.Security.Principal;
namespace MyNamespace
{
public class MyClassCS
{
// Attribute to address CA1416 warning:
// System.IO.FileSystem.AccessControl APIs are only available on Windows
[SupportedOSPlatform("windows")]
static void Main()
{
// Create the file security object
SecurityIdentifier identity = new SecurityIdentifier(
WellKnownSidType.BuiltinUsersSid, // This maps to "Everyone" user group in Windows
null); // null is OK for this particular user group. For others, a non-empty value might be required
FileSystemAccessRule accessRule = new FileSystemAccessRule(identity, FileSystemRights.FullControl, AccessControlType.Allow);
DirectorySecurity expectedSecurity = new DirectorySecurity();
expectedSecurity.AddAccessRule(accessRule);
// Make sure the directory does not exist, then create it
string dirPath = Path.Combine(Path.GetTempPath(), "directoryToCreate");
DirectoryInfo dirInfo = new DirectoryInfo(dirPath);
if (dirInfo.Exists)
{
dirInfo.Delete(recursive: true);
}
dirInfo.Create(expectedSecurity);
}
}
}
Açıklamalar
Bu uzantı yöntemi, DirectoryInfo.İçerik Oluşturucu tarafından sağlanan işlevselliği getirmek için .NET Core'a eklendi (DirectorySecurity) .NET Framework yöntemi.
Şunlara uygulanır
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
Belirtilen özellikler ve güvenlik ayarlarıyla oluşturulduğundan emin olarak yeni bir dosya akışı oluşturur.
public:
[System::Runtime::CompilerServices::Extension]
static System::IO::FileStream ^ Create(System::IO::FileInfo ^ fileInfo, System::IO::FileMode mode, System::Security::AccessControl::FileSystemRights rights, System::IO::FileShare share, int bufferSize, System::IO::FileOptions options, System::Security::AccessControl::FileSecurity ^ fileSecurity);
public static System.IO.FileStream Create (this System.IO.FileInfo fileInfo, System.IO.FileMode mode, System.Security.AccessControl.FileSystemRights rights, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity);
public static System.IO.FileStream Create (this System.IO.FileInfo fileInfo, System.IO.FileMode mode, System.Security.AccessControl.FileSystemRights rights, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options, System.Security.AccessControl.FileSecurity? fileSecurity);
static member Create : System.IO.FileInfo * System.IO.FileMode * System.Security.AccessControl.FileSystemRights * System.IO.FileShare * int * System.IO.FileOptions * System.Security.AccessControl.FileSecurity -> System.IO.FileStream
<Extension()>
Public Function Create (fileInfo As FileInfo, mode As FileMode, rights As FileSystemRights, share As FileShare, bufferSize As Integer, options As FileOptions, fileSecurity As FileSecurity) As FileStream
Parametreler
- fileInfo
- FileInfo
Henüz var olmayan ve yöntemi tarafından oluşturulacak bir dosya.
- mode
- FileMode
İşletim sisteminin bir dosyayı nasıl açması gerektiğini belirten numaralandırma değerlerinden biri.
- rights
- FileSystemRights
Erişim ve denetim kuralları oluştururken kullanılacak erişim haklarını tanımlayan numaralandırma değerlerinden biri.
- share
- FileShare
Diğer dosya akışı nesnelerinin aynı dosyaya erişim türünü denetlemeye yönelik numaralandırma değerlerinden biri olabilir.
- bufferSize
- Int32
Dosyaya okuma ve yazma işlemleri için arabelleğe alınan bayt sayısı.
- options
- FileOptions
Dosyanın nasıl oluşturulacağını veya üzerine yazıldığını açıklayan numaralandırma değerlerinden biri.
- fileSecurity
- FileSecurity
Dosya için erişim denetimini ve denetim güvenliğini belirleyen bir nesne.
Döndürülenler
Yeni oluşturulan dosya için bir dosya akışı.
Özel durumlar
rights
ve mode
bileşimi geçersiz.
fileInfo
veya fileSecurity
şeklindedir null
.
mode
veya share
yasal sabit listesi aralığının dışındadır.
-veya-
bufferSize
pozitif bir sayı değildir.
Yolun bir bölümü bulunamadı.
G/ç hatası oluştu.
Yola erişim reddedildi.
Örnekler
Aşağıdaki kod örneği, kullanıcının geçici klasöründe tüm güvenlik özniteliklerini açıkça belirterek yeni bir metin dosyası oluşturur:
using System;
using System.IO;
using System.Runtime.Versioning;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Text;
namespace MyNamespace
{
public class MyClassCS
{
// Attribute to address CA1416 warning:
// System.IO.FileSystem.AccessControl APIs are only available on Windows
[SupportedOSPlatform("windows")]
static void Main()
{
// Create the file security object
var identity = new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null);
var accessRule = new FileSystemAccessRule(identity, FileSystemRights.FullControl, AccessControlType.Allow);
var security = new FileSecurity();
security.AddAccessRule(accessRule);
// Make sure the file does not exist, or FileMode.CreateNew will throw
string filePath = Path.Combine(Path.GetTempPath(), "temp.txt");
var fileInfo = new FileInfo(filePath);
if (fileInfo.Exists)
{
fileInfo.Delete();
}
// Create the file with the specified security and write some text
using (FileStream stream = fileInfo.Create(
FileMode.CreateNew,
FileSystemRights.FullControl,
FileShare.ReadWrite,
4096, // Default buffer size
FileOptions.None,
security))
{
string text = "Hello world!";
byte[] writeBuffer = new UTF8Encoding(encoderShouldEmitUTF8Identifier: true).GetBytes(text);
stream.Write(writeBuffer, 0, writeBuffer.Length);
} // Dispose flushes the file to disk
}
}
}
Açıklamalar
Bu uzantı yöntemi, tarafından sağlanan işlevselliği getirmek için .NET Core'a eklendi:
- FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) .NET Framework oluşturucu.
- File.İçerik Oluşturucu(String, Int32, FileOptions, FileSecurity .NET Framework yöntemi.