FileSystemAclExtensions.Create Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
Create(DirectoryInfo, DirectorySecurity) |
Membuat direktori baru, memastikannya dibuat dengan keamanan direktori yang ditentukan. Jika direktori sudah ada, tidak ada yang dilakukan. |
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Membuat aliran file baru, memastikannya dibuat dengan properti dan pengaturan keamanan yang ditentukan. |
Create(DirectoryInfo, DirectorySecurity)
Membuat direktori baru, memastikannya dibuat dengan keamanan direktori yang ditentukan. Jika direktori sudah ada, tidak ada yang dilakukan.
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)
Parameter
- directoryInfo
- DirectoryInfo
Direktori yang belum ada yang akan dibuat oleh metode .
- directorySecurity
- DirectorySecurity
Kontrol akses dan keamanan audit untuk direktori.
Pengecualian
directoryInfo
atau directorySecurity
adalah null
.
Tidak dapat menemukan bagian dari jalur.
Akses ke jalur ditolak.
Contoh
Contoh kode berikut membuat direktori baru di dalam folder sementara pengguna dengan atribut keamanan direktori yang ditentukan:
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);
}
}
}
Keterangan
Metode ekstensi ini ditambahkan ke .NET Core untuk membawa fungsionalitas yang disediakan oleh DirectoryInfo.Create(DirectorySecurity) .NET Framework metode.
Berlaku untuk
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
Membuat aliran file baru, memastikannya dibuat dengan properti dan pengaturan keamanan yang ditentukan.
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
Parameter
- fileInfo
- FileInfo
File yang belum ada yang akan dibuat oleh metode .
- mode
- FileMode
Salah satu nilai enumerasi yang menentukan bagaimana sistem operasi harus membuka file.
- rights
- FileSystemRights
Salah satu nilai enumerasi yang menentukan hak akses untuk digunakan saat membuat aturan akses dan audit.
- share
- FileShare
Salah satu nilai enumerasi untuk mengontrol jenis akses objek aliran file lain dapat memiliki ke file yang sama.
- bufferSize
- Int32
Jumlah byte yang di-buffer untuk dibaca dan ditulis ke file.
- options
- FileOptions
Salah satu nilai enumerasi yang menjelaskan cara membuat atau menimpa file.
- fileSecurity
- FileSecurity
Objek yang menentukan kontrol akses dan keamanan audit untuk file.
Mengembalikan
Aliran file untuk file yang baru dibuat.
Pengecualian
Kombinasi rights
dan mode
tidak valid.
fileInfo
atau fileSecurity
adalah null
.
mode
atau share
berada di luar jangkauan enum hukum mereka.
-atau-
bufferSize
bukan angka positif.
Tidak dapat menemukan bagian dari jalur.
Terjadi kesalahan I/O.
Akses ke jalur ditolak.
Contoh
Contoh kode berikut membuat file teks baru di dalam folder sementara pengguna, secara eksplisit menentukan semua atribut keamanan:
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
}
}
}
Keterangan
Metode ekstensi ini ditambahkan ke .NET Core untuk membawa fungsionalitas yang disediakan oleh:
- Konstruktor FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) .NET Framework.
- File.Create(String, Int32, FileOptions, FileSecurity .NET Framework metode.