FileSystemAclExtensions.Create Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
Create(DirectoryInfo, DirectorySecurity) |
Erstellt ein neues Verzeichnis, wobei sichergestellt wird, dass es mit der angegebenen Verzeichnissicherheit erstellt wird. Wenn das Verzeichnis bereits vorhanden ist, wird nichts unternommen. |
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Erstellt einen neuen Datenstrom, wobei sichergestellt wird, dass er mit den angegebenen Eigenschaften und Sicherheitseinstellungen erstellt wird. |
Create(DirectoryInfo, DirectorySecurity)
Erstellt ein neues Verzeichnis, wobei sichergestellt wird, dass es mit der angegebenen Verzeichnissicherheit erstellt wird. Wenn das Verzeichnis bereits vorhanden ist, wird nichts unternommen.
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
Ein Verzeichnis, das noch nicht vorhanden ist und von der Methode erstellt wird.
- directorySecurity
- DirectorySecurity
Die Zugriffssteuerung und Überwachungssicherheit für das Verzeichnis.
Ausnahmen
directoryInfo
oder directorySecurity
ist null
.
Ein Teil des Pfads wurde nicht gefunden.
Der Zugriff auf den Pfad wurde verweigert.
Beispiele
Im folgenden Codebeispiel wird ein neues Verzeichnis im temporären Ordner des Benutzers mit den angegebenen Verzeichnissicherheitsattributen erstellt:
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);
}
}
}
Hinweise
Diese Erweiterungsmethode wurde zu .NET Core hinzugefügt, um die Von DirectoryInfo.Create(DirectorySecurity) .NET Framework-Methode.
Gilt für:
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
Erstellt einen neuen Datenstrom, wobei sichergestellt wird, dass er mit den angegebenen Eigenschaften und Sicherheitseinstellungen erstellt wird.
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
Eine Datei, die noch nicht vorhanden ist und von der Methode erstellt wird.
- mode
- FileMode
Einer der Enumerationswerte, der angibt, wie die das Betriebssystem eine Datei öffnen soll.
- rights
- FileSystemRights
Einer der Enumerationswerte, der die beim Erstellen der Zugriffs- und Überwachungsregeln zu verwendenden Zugriffsrechte definiert.
- share
- FileShare
Einer der Enumerationswerte für das Steuern der Zugriffsart von anderen Dateidatenstromobjekten auf dieselbe Datei.
- bufferSize
- Int32
Die Anzahl der für Lese- und Schreibvorgänge in die Datei gepufferten Bytes.
- options
- FileOptions
Einer der Enumerationswerte, der beschreibt, wie die Datei erstellt oder überschrieben werden soll.
- fileSecurity
- FileSecurity
Ein Objekt, das die Zugriffssteuerung und die Überwachungssicherheit für die Datei bestimmt.
Gibt zurück
Ein Dateidatenstrom für die neu erstellte Datei.
Ausnahmen
Die Kombination aus rights
und mode
ist ungültig.
fileInfo
oder fileSecurity
ist null
.
mode
oder share
liegen außerhalb ihrer gültigen Aufzählungsbereiche.
- oder -
bufferSize
ist keine positive Zahl.
Ein Teil des Pfads wurde nicht gefunden.
E/A-Fehler
Der Zugriff auf den Pfad wurde verweigert.
Beispiele
Im folgenden Codebeispiel wird eine neue Textdatei im temporären Ordner des Benutzers erstellt, wobei alle Sicherheitsattribute explizit angegeben werden:
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
}
}
}
Hinweise
Diese Erweiterungsmethode wurde zu .NET Core hinzugefügt, um die Funktionen zu nutzen, die von bereitgestellt wurden:
- Der FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) .NET Framework Konstruktor.
- File.Create(String, Int32, FileOptions, FileSecurity .NET Framework-Methode.