FileSystemAclExtensions.Create Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| Create(DirectoryInfo, DirectorySecurity) |
Crea una nuova directory, assicurandosi che venga creata con la sicurezza della directory specificata. Se la directory esiste già, non viene eseguita alcuna operazione. |
| Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Crea un nuovo flusso di file, assicurandosi che venga creato con le proprietà e le impostazioni di sicurezza specificate. |
Create(DirectoryInfo, DirectorySecurity)
Crea una nuova directory, assicurandosi che venga creata con la sicurezza della directory specificata. Se la directory esiste già, non viene eseguita alcuna operazione.
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)
Parametri
- directoryInfo
- DirectoryInfo
Directory che non esiste ancora che verrà creata dal metodo .
- directorySecurity
- DirectorySecurity
Controllo di accesso e sicurezza di controllo per la directory.
Eccezioni
directoryInfo o directorySecurity è null.
Impossibile trovare una parte del percorso.
L'accesso al percorso viene negato.
Esempio
Nell'esempio di codice seguente viene creata una nuova directory all'interno della cartella temporanea dell'utente con gli attributi di sicurezza della directory specificati:
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);
}
}
}
Commenti
Questo metodo di estensione è stato aggiunto a .NET Core per portare la funzionalità fornita dal metodo DirectoryInfo.Create(DirectorySecurity) .NET Framework.
Si applica a
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
Crea un nuovo flusso di file, assicurandosi che venga creato con le proprietà e le impostazioni di sicurezza specificate.
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
Parametri
- fileInfo
- FileInfo
File che non esiste ancora che verrà creato dal metodo .
- mode
- FileMode
Uno dei valori di enumerazione che specifica come il sistema operativo deve aprire un file.
- rights
- FileSystemRights
Uno dei valori di enumerazione che definisce i diritti di accesso da utilizzare durante la creazione di regole di accesso e controllo.
- share
- FileShare
Uno dei valori di enumerazione per controllare il tipo di accesso ad altri oggetti del flusso di file può avere nello stesso file.
- bufferSize
- Int32
Numero di byte memorizzati nel buffer per letture e scritture nel file.
- options
- FileOptions
Uno dei valori di enumerazione che descrive come creare o sovrascrivere il file.
- fileSecurity
- FileSecurity
Oggetto che determina il controllo di accesso e controlla la sicurezza per il file.
Valori restituiti
Flusso di file per il file appena creato.
Eccezioni
La rights combinazione e mode non è valida.
fileInfo o fileSecurity è null.
mode o share non sono compresi nell'intervallo di enumerazioni legali.
oppure
bufferSize non è un numero positivo.
Impossibile trovare una parte del percorso.
Si è verificato un errore di I/O.
L'accesso al percorso viene negato.
Esempio
Nell'esempio di codice seguente viene creato un nuovo file di testo all'interno della cartella temporanea dell'utente, specificando in modo esplicito tutti gli attributi di sicurezza:
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
}
}
}
Commenti
Questo metodo di estensione è stato aggiunto a .NET Core per portare le funzionalità fornite da:
- Costruttore FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) .NET Framework.
- Metodo File.Create(String, Int32, FileOptions, FileSecurity .NET Framework.