FileSystemAclExtensions.Create Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
Create(DirectoryInfo, DirectorySecurity) |
Crée un répertoire en veillant à ce qu’il soit créé avec la sécurité de répertoire spécifiée. Si le répertoire existe déjà, aucune action n’est entreprise. |
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Crée un flux de fichier en veillant à ce qu’il soit créé avec les propriétés et les paramètres de sécurité spécifiés. |
Create(DirectoryInfo, DirectorySecurity)
Crée un répertoire en veillant à ce qu’il soit créé avec la sécurité de répertoire spécifiée. Si le répertoire existe déjà, aucune action n’est entreprise.
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)
Paramètres
- directoryInfo
- DirectoryInfo
Répertoire qui n’existe pas encore et qui sera créé par la méthode.
- directorySecurity
- DirectorySecurity
Sécurité du contrôle d’accès et de l’audit d’un répertoire.
Exceptions
directoryInfo
ou directorySecurity
est null
.
Impossible de trouver une partie du chemin.
L’accès au chemin est refusé.
Exemples
L’exemple de code suivant crée un répertoire à l’intérieur du dossier temporaire de l’utilisateur avec les attributs de sécurité d’annuaire spécifiés :
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);
}
}
}
Remarques
Cette méthode d’extension a été ajoutée à .NET Core pour apporter les fonctionnalités fournies par DirectoryInfo.Create(DirectorySecurity) Méthode .NET Framework.
S’applique à
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
Crée un flux de fichier en veillant à ce qu’il soit créé avec les propriétés et les paramètres de sécurité spécifiés.
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
Paramètres
- fileInfo
- FileInfo
Fichier qui n’existe pas encore et qui sera créé par la méthode.
- mode
- FileMode
Une des valeurs d’énumération qui spécifie le mode d’ouverture d’un fichier par le système d’exploitation.
- rights
- FileSystemRights
Une des valeurs d’énumération qui définit les droits d’accès à utiliser lors de la création de règles d'accès et d'audit.
- share
- FileShare
Une des valeurs d’énumération pour contrôler le type d’accès que d’autres objets de flux de fichier peuvent avoir à un même fichier.
- bufferSize
- Int32
Nombre d'octets mis en mémoire tampon pour les opérations de lecture et d'écriture dans le fichier.
- options
- FileOptions
Une des valeurs d’énumération qui décrit comment créer ou remplacer le fichier.
- fileSecurity
- FileSecurity
Objet qui détermine la sécurité de contrôle d’accès et d’audit du fichier.
Retours
Flux de fichier pour le fichier qui vient d’être créé.
Exceptions
La combinaison rights
et mode
n’est pas valide.
fileInfo
ou fileSecurity
est null
.
mode
ou share
sont hors de leur plage d’énumération légale.
- ou -
bufferSize
n’est pas un nombre positif.
Impossible de trouver une partie du chemin.
Une erreur d'E/S s'est produite.
L’accès au chemin est refusé.
Exemples
L’exemple de code suivant crée un fichier texte à l’intérieur du dossier temporaire de l’utilisateur, en spécifiant explicitement tous les attributs de sécurité :
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
}
}
}
Remarques
Cette méthode d’extension a été ajoutée à .NET Core pour apporter les fonctionnalités fournies par :
- Constructeur FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) .NET Framework.
- File.Create(String, Int32, FileOptions, Méthode .NET Framework FileSecurity.