FileSystemAclExtensions.Create Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
Create(DirectoryInfo, DirectorySecurity) |
Vytvoří nový adresář a zajistí, že se vytvoří se zadaným zabezpečením adresáře. Pokud adresář již existuje, nic se nedělá. |
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Vytvoří nový datový proud souboru a zajistí, že se vytvoří se zadanými vlastnostmi a nastavením zabezpečení. |
Create(DirectoryInfo, DirectorySecurity)
Vytvoří nový adresář a zajistí, že se vytvoří se zadaným zabezpečením adresáře. Pokud adresář již existuje, nic se nedělá.
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)
Parametry
- directoryInfo
- DirectoryInfo
Adresář, který ještě neexistuje a který bude vytvořen metodou .
- directorySecurity
- DirectorySecurity
Řízení přístupu a zabezpečení auditu pro adresář.
Výjimky
directoryInfo
nebo directorySecurity
je null
.
Nelze najít část cesty.
Přístup k cestě byl odepřen.
Příklady
Následující příklad kódu vytvoří nový adresář v dočasné složce uživatele se zadanými atributy zabezpečení adresáře:
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);
}
}
}
Poznámky
Tato metoda rozšíření byla přidána do .NET Core, aby přinesla funkce poskytované DirectoryInfo.Create(Zabezpečení adresáře) Metoda rozhraní .NET Framework.
Platí pro
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
Vytvoří nový datový proud souboru a zajistí, že se vytvoří se zadanými vlastnostmi a nastavením zabezpečení.
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
Parametry
- fileInfo
- FileInfo
Soubor, který ještě neexistuje a který bude vytvořen metodou .
- mode
- FileMode
Jedna z hodnot výčtu, která určuje, jak má operační systém otevřít soubor.
- rights
- FileSystemRights
Jedna z hodnot výčtu, která definuje přístupová práva, která se mají použít při vytváření pravidel přístupu a auditování.
- share
- FileShare
Jedna z hodnot výčtu pro řízení druhu přístupu ostatní objekty datového proudu souborů mohou mít ke stejnému souboru.
- bufferSize
- Int32
Počet bajtů ve vyrovnávací paměti pro čtení a zápisy do souboru.
- options
- FileOptions
Jedna z hodnot výčtu, která popisuje, jak vytvořit nebo přepsat soubor.
- fileSecurity
- FileSecurity
Objekt, který určuje řízení přístupu a zabezpečení auditu pro soubor.
Návraty
Datový proud souboru pro nově vytvořený soubor.
Výjimky
Kombinace rights
a mode
je neplatná.
fileInfo
nebo fileSecurity
je null
.
mode
nebo share
jsou mimo svůj zákonný výčtový rozsah.
-nebo-
bufferSize
není kladné číslo.
Nelze najít část cesty.
Došlo k vstupně-výstupní chybě.
Přístup k cestě byl odepřen.
Příklady
Následující příklad kódu vytvoří nový textový soubor v dočasné složce uživatele a explicitně určí všechny atributy zabezpečení:
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
}
}
}
Poznámky
Tato metoda rozšíření byla přidána do .NET Core, aby přinesla funkce poskytované:
- Konstruktor FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) .NET Framework.
- Soubor.Create(String, Int32, FileOptions, FileSecurity . NET Framework – metoda.