FileSystemAclExtensions.Create 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
Create(DirectoryInfo, DirectorySecurity) |
지정된 디렉터리 보안을 사용하여 새 파일 디렉터리를 만듭니다. 디렉터리가 이미 있는 경우 아무 작업도 수행되지 않습니다. |
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
지정된 속성 및 보안 설정을 사용하여 새 파일 스트림을 만듭니다. |
Create(DirectoryInfo, DirectorySecurity)
지정된 디렉터리 보안을 사용하여 새 파일 디렉터리를 만듭니다. 디렉터리가 이미 있는 경우 아무 작업도 수행되지 않습니다.
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)
매개 변수
- directoryInfo
- DirectoryInfo
메서드에 의해 만들어질 아직 존재하지 않는 디렉터리입니다.
- directorySecurity
- DirectorySecurity
디렉터리의 액세스 제어 및 감사 보안입니다.
예외
directoryInfo
또는 directorySecurity
가 null
인 경우
일부 경로를 찾을 수 없습니다.
경로 액세스가 거부되었습니다.
예제
다음 코드 예제에서는 지정된 디렉터리 보안 특성을 사용하여 사용자의 임시 폴더 내에 새 디렉터리를 만듭니다.
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);
}
}
}
설명
이 확장 메서드는 DirectoryInfo.Create 제공된 기능을 가져오기 위해 .NET Core에 추가되었습니다.(DirectorySecurity) .NET Framework 메서드입니다.
적용 대상
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
지정된 속성 및 보안 설정을 사용하여 새 파일 스트림을 만듭니다.
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
매개 변수
- fileInfo
- FileInfo
메서드에 의해 만들어질 아직 존재하지 않는 파일입니다.
- mode
- FileMode
운영 체제에서 파일을 여는 방법을 지정하는 열거형 값 중 하나입니다.
- rights
- FileSystemRights
액세스 및 감사 규칙을 만들 때 사용할 액세스 권한을 정의하는 열거형 값 중 하나입니다.
- share
- FileShare
다른 파일 스트림 개체의 동일한 파일에 대한 액세스 권한 종류를 제어하는 열거형 값 중 하나입니다.
- bufferSize
- Int32
파일 읽기 및 쓰기를 위해 버퍼링할 바이트 수입니다.
- options
- FileOptions
파일을 만들거나 덮어쓸 방식을 설명하는 열거형 값 중 하나입니다.
- fileSecurity
- FileSecurity
파일의 액세스 제어 및 감사 보안을 결정하는 개체입니다.
반환
새로 만든 파일의 파일 스트림입니다.
예외
rights
및 mode
조합이 잘못되었습니다.
fileInfo
또는 fileSecurity
가 null
인 경우
일부 경로를 찾을 수 없습니다.
I/O 오류가 발생했습니다.
경로 액세스가 거부되었습니다.
예제
다음 코드 예제에서는 모든 보안 특성을 명시적으로 지정하여 사용자의 임시 폴더 내에 새 텍스트 파일을 만듭니다.
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
}
}
}
설명
이 확장 메서드는 다음에서 제공한 기능을 가져오기 위해 .NET Core에 추가되었습니다.
- FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) .NET Framework 생성자입니다.
- File.Create(String, Int32, FileOptions, FileSecurity .NET Framework 메서드입니다.
적용 대상
.NET