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
Create(DirectoryInfo, DirectorySecurity) |
Crea una nuova directory, verificando che venga creata con la sicurezza della directory specificata. Se la directory esiste già non viene eseguita nessuna operazione. |
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Crea un nuovo flusso di file, verificando che venga creato con le proprietà e le impostazioni di sicurezza specificate. |
Create(DirectoryInfo, DirectorySecurity)
Crea una nuova directory, verificando che venga creata con la sicurezza della directory specificata. Se la directory esiste già non viene eseguita nessuna 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
Una directory che non esiste ancora e che verrà creata dal metodo.
- directorySecurity
- DirectorySecurity
Controllo di accesso e sicurezza di controllo della directory.
Eccezioni
directoryInfo
o directorySecurity
è null
.
Non è possibile trovare una parte del percorso.
Accesso al percorso 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 da DirectoryInfo.Create(DirectorySecurity) Metodo .NET Framework.
Si applica a
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
Crea un nuovo flusso di file, verificando 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
Un file che non esiste ancora e che verrà creato dal metodo.
- mode
- FileMode
Uno dei valori di enumerazione che specifica la modalità con cui il sistema operativo apre un file.
- rights
- FileSystemRights
Uno dei valori di enumerazione che determina i diritti di accesso da usare quando si creano regole di accesso e di controllo.
- share
- FileShare
Uno dei valori di enumerazione per il controllo del tipo di accesso allo stesso file disponibile per altri oggetti flusso di 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 la sicurezza di controllo per il file.
Restituisce
Flusso di file per il file appena creato.
Eccezioni
La combinazione di rights
e mode
non è valida.
fileInfo
o fileSecurity
è null
.
mode
o share
non rientrano nel rispettivo intervallo enum valido.
-oppure-
bufferSize
non è un numero positivo.
Non è possibile trovare una parte del percorso.
Si è verificato un errore di I/O.
Accesso al percorso 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 la funzionalità fornita da:
- Costruttore FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity).
- File.Create(Metodo String, Int32, FileOptions, FileSecurity .NET Framework.