FileStream 생성자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
FileStream 클래스의 새 인스턴스를 초기화합니다.
오버로드
FileStream(SafeFileHandle, FileAccess) |
지정된 읽기/쓰기 권한을 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
지정된 경로, 생성 모드, 액세스 권한 및 공유 권한, 버퍼 크기, 추가 파일 옵션, 액세스 제어 및 감사 보안을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions) |
지정된 경로, 생성 모드, 액세스 권한 및 공유 권한, 버퍼 크기 및 추가 파일 옵션을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions) |
지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한, 다른 FileStreams가 동일한 파일, 버퍼 크기 및 추가 파일 옵션에 대해 가질 수 있는 액세스 권한을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(String, FileMode, FileAccess, FileShare, Int32) |
지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한 및 버퍼 크기를 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
지정된 읽기/쓰기 권한, |
FileStream(String, FileMode, FileAccess, FileShare) |
지정된 경로, 생성 모드, 읽기/쓰기 권한 및 공유 권한을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(IntPtr, FileAccess, Boolean, Int32) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
지정된 읽기/쓰기 권한, |
FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) |
지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한, 버퍼 크기, 동기 또는 비동기 상태를 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(String, FileMode, FileAccess) |
지정된 경로, 생성 모드 및 읽기/쓰기 권한을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(IntPtr, FileAccess, Boolean) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
지정된 읽기/쓰기 권한 및 |
FileStream(SafeFileHandle, FileAccess, Int32) |
지정된 읽기/쓰기 권한 및 버퍼 크기를 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(SafeFileHandle, FileAccess, Int32, Boolean) |
지정된 읽기/쓰기 권한, 버퍼 크기 및 동기 또는 비동기 상태를 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(String, FileStreamOptions) |
지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한, 버퍼 크기, 추가 파일 옵션, 사전 할당 크기 및 다른 FileStreams가 동일한 파일에 대해 가질 수 있는 액세스를 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(String, FileMode) |
지정된 경로 및 생성 모드를 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(IntPtr, FileAccess) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
지정된 읽기/쓰기 권한을 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다. |
FileStream(SafeFileHandle, FileAccess)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 읽기/쓰기 권한을 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(Microsoft::Win32::SafeHandles::SafeFileHandle ^ handle, System::IO::FileAccess access);
public FileStream (Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access);
new System.IO.FileStream : Microsoft.Win32.SafeHandles.SafeFileHandle * System.IO.FileAccess -> System.IO.FileStream
Public Sub New (handle As SafeFileHandle, access As FileAccess)
매개 변수
- handle
- SafeFileHandle
현재 FileStream
개체가 캡슐화할 파일에 대한 파일 핸들입니다.
- access
- FileAccess
예외
access
FileAccess필드가 아닙니다.
호출자에게 필요한 권한이 없습니다.
요청된 access
운영 체제에서 지정된 파일 핸들에 대해 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 핸들이 읽기 전용 액세스로 설정된 경우).
설명
Close 호출되면 핸들도 닫히고 파일의 핸들 수가 감소합니다.
FileStream
핸들을 단독으로 제어할 수 있다고 가정합니다.
FileStream
핸들을 들고 있는 동안 읽기, 쓰기 또는 검색하면 데이터가 손상될 수 있습니다. 데이터 안전을 위해 핸들을 사용하기 전에 Flush 호출하고 핸들 사용을 완료한 후 Close
이외의 메서드를 호출하지 않습니다.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
FileShare.Read
FileShare
매개 변수가 없는 FileStream 생성자의 기본값입니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)
지정된 경로, 생성 모드, 액세스 권한 및 공유 권한, 버퍼 크기, 추가 파일 옵션, 액세스 제어 및 감사 보안을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(System::String ^ path, 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 FileStream (string path, System.IO.FileMode mode, System.Security.AccessControl.FileSystemRights rights, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity);
new System.IO.FileStream : string * System.IO.FileMode * System.Security.AccessControl.FileSystemRights * System.IO.FileShare * int * System.IO.FileOptions * System.Security.AccessControl.FileSecurity -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, rights As FileSystemRights, share As FileShare, bufferSize As Integer, options As FileOptions, fileSecurity As FileSecurity)
매개 변수
- path
- String
현재 FileStream 개체가 캡슐화할 파일의 상대 또는 절대 경로입니다.
- mode
- FileMode
파일을 열거나 만드는 방법을 결정하는 열거형 값 중 하나입니다.
- rights
- FileSystemRights
파일에 대한 액세스 및 감사 규칙을 만들 때 사용할 액세스 권한을 결정하는 열거형 값의 비트 조합입니다.
- share
- FileShare
프로세스에서 파일을 공유하는 방법을 결정하는 열거형 값의 비트 조합입니다.
- options
- FileOptions
추가 파일 옵션을 지정하는 열거형 값의 비트 조합입니다.
- fileSecurity
- FileSecurity
파일에 대한 액세스 제어 및 감사 보안을 결정하는 개체입니다.
예외
path
null
.
.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: path
빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.
-또는-
path
NTFS 환경에서 "con:", "com1:", "lpt1:" 등과 같은 파일이 아닌 디바이스를 나타냅니다.
path
비 NTFS 환경에서 "con:", "com1:", "lpt1:"와 같은 비 파일 디바이스를 참조합니다.
mode
FileMode.Truncate
또는 FileMode.Open
path
지정된 파일이 없는 경우와 같이 파일을 찾을 수 없습니다. 파일이 이러한 모드에 이미 있어야 합니다.
호출자에게 필요한 권한이 없습니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).
요청된 access
지정된 path
대해 운영 체제에서 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 또는 디렉터리가 읽기 전용 액세스용으로 설정된 경우).
-또는-
Encrypted
options
대해 지정되지만 현재 플랫폼에서는 파일 암호화가 지원되지 않습니다.
지정된 path
, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다.
현재 운영 체제는 Windows NT 이상이 아닙니다.
예제
다음 예제에서는 파일에 데이터를 쓴 다음 FileStream 개체를 사용하여 데이터를 읽습니다.
using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Security::AccessControl;
using namespace System::Security::Principal;
int main()
{
try
{
// Create a file and write data to it.
// Create an array of bytes.
array<Byte>^ messageByte =
Encoding::ASCII->GetBytes("Here is some data.");
// Specify an access control list (ACL)
FileSecurity^ fs = gcnew FileSecurity();
fs->AddAccessRule(
gcnew FileSystemAccessRule("MYDOMAIN\\MyAccount",
FileSystemRights::Modify, AccessControlType::Allow));
// Create a file using the FileStream class.
FileStream^ fWrite = gcnew FileStream("test.txt",
FileMode::Create, FileSystemRights::Modify,
FileShare::None, 8, FileOptions::None, fs);
// Write the number of bytes to the file.
fWrite->WriteByte((Byte)messageByte->Length);
// Write the bytes to the file.
fWrite->Write(messageByte, 0, messageByte->Length);
// Close the stream.
fWrite->Close();
// Open a file and read the number of bytes.
FileStream^ fRead =
gcnew FileStream("test.txt", FileMode::Open);
// The first byte is the string length.
int length = (int)fRead->ReadByte();
// Create a new byte array for the data.
array<Byte>^ readBytes = gcnew array<Byte>(length);
// Read the data from the file.
fRead->Read(readBytes, 0, readBytes->Length);
// Close the stream.
fRead->Close();
// Display the data.
Console::WriteLine(Encoding::ASCII->GetString(readBytes));
Console::WriteLine("Done writing and reading data.");
}
catch (IdentityNotMappedException^)
{
Console::WriteLine("You need to use your own credentials " +
" 'MYDOMAIN\\MyAccount'.");
}
catch (IOException^ ex)
{
Console::WriteLine(ex->Message);
}
}
using System;
using System.IO;
using System.Text;
using System.Security.AccessControl;
namespace FileSystemExample
{
class FileStreamExample
{
public static void Main()
{
try
{
// Create a file and write data to it.
// Create an array of bytes.
byte[] messageByte = Encoding.ASCII.GetBytes("Here is some data.");
// Specify an access control list (ACL)
FileSecurity fs = new FileSecurity();
fs.AddAccessRule(new FileSystemAccessRule(@"DOMAINNAME\AccountName",
FileSystemRights.ReadData,
AccessControlType.Allow));
// Create a file using the FileStream class.
FileStream fWrite = new FileStream("test.txt", FileMode.Create, FileSystemRights.Modify, FileShare.None, 8, FileOptions.None, fs);
// Write the number of bytes to the file.
fWrite.WriteByte((byte)messageByte.Length);
// Write the bytes to the file.
fWrite.Write(messageByte, 0, messageByte.Length);
// Close the stream.
fWrite.Close();
// Open a file and read the number of bytes.
FileStream fRead = new FileStream("test.txt", FileMode.Open);
// The first byte is the string length.
int length = (int)fRead.ReadByte();
// Create a new byte array for the data.
byte[] readBytes = new byte[length];
// Read the data from the file.
fRead.Read(readBytes, 0, readBytes.Length);
// Close the stream.
fRead.Close();
// Display the data.
Console.WriteLine(Encoding.ASCII.GetString(readBytes));
Console.WriteLine("Done writing and reading data.");
}
catch (Exception e)
{
Console.WriteLine(e);
}
Console.ReadLine();
}
}
}
open System
open System.IO;
open System.Text
open System.Security.AccessControl;
try
// Create a file and write data to it.
// Create an array of bytes.
let messageByte = Encoding.ASCII.GetBytes "Here is some data."
// Specify an access control list (ACL)
let fs = FileSecurity()
FileSystemAccessRule(@"DOMAINNAME\AccountName", FileSystemRights.ReadData, AccessControlType.Allow)
|> fs.AddAccessRule
// Create a file using the FileStream class.
let fWrite = new FileStream("test.txt", FileMode.Create, FileSystemRights.Modify, FileShare.None, 8, FileOptions.None, fs)
// Write the number of bytes to the file.
byte messageByte.Length
|> fWrite.WriteByte
// Write the bytes to the file.
fWrite.Write(messageByte, 0, messageByte.Length);
// Close the stream.
fWrite.Close();
// Open a file and read the number of bytes.
let fRead = new FileStream("test.txt", FileMode.Open)
// The first byte is the string length.
let length = fRead.ReadByte() |> int
// Create a new byte array for the data.
let readBytes = Array.zeroCreate length
// Read the data from the file.
fRead.Read(readBytes, 0, readBytes.Length);
// Close the stream.
fRead.Close();
// Display the data.
printfn $"{Encoding.ASCII.GetString readBytes}"
printfn "Done writing and reading data."
with e ->
printfn $"{e}"
Imports System.IO
Imports System.Text
Imports System.Security.AccessControl
Module FileStreamExample
Sub Main()
Try
' Create a file and write data to it.
' Create an array of bytes.
Dim messageByte As Byte() = Encoding.ASCII.GetBytes("Here is some data.")
' Specify an access control list (ACL)
Dim fs As New FileSecurity()
fs.AddAccessRule(New FileSystemAccessRule("DOMAINNAME\AccountName", FileSystemRights.ReadData, AccessControlType.Allow))
' Create a file using the FileStream class.
Dim fWrite As New FileStream("test.txt", FileMode.Create, FileSystemRights.Modify, FileShare.None, 8, FileOptions.None, fs)
' Write the number of bytes to the file.
fWrite.WriteByte(System.Convert.ToByte(messageByte.Length))
' Write the bytes to the file.
fWrite.Write(messageByte, 0, messageByte.Length)
' Close the stream.
fWrite.Close()
' Open a file and read the number of bytes.
Dim fRead As New FileStream("test.txt", FileMode.Open)
' The first byte is the string length.
Dim length As Integer = Fix(fRead.ReadByte())
' Create a new byte array for the data.
Dim readBytes(length) As Byte
' Read the data from the file.
fRead.Read(readBytes, 0, readBytes.Length)
' Close the stream.
fRead.Close()
' Display the data.
Console.WriteLine(Encoding.ASCII.GetString(readBytes))
Console.WriteLine("Done writing and reading data.")
Catch e As Exception
Console.WriteLine(e)
End Try
Console.ReadLine()
End Sub
End Module
설명
.NET Framework는 디바이스 이름인 경로(예: "\\.\PHYSICALDRIVE0")를 통해 실제 디스크에 대한 직접 액세스를 지원하지 않습니다.
이 FileStream 생성자를 사용하여 파일을 만들 때 액세스 권한을 적용합니다. 기존 파일에 대한 권한에 액세스하거나 수정하려면 GetAccessControl 및 SetAccessControl 메서드를 사용하는 것이 좋습니다.
fileOptions
매개 변수는 FileStream 개체를 만들 때 사용할 수 있는 고급 작업에 대한 액세스를 제공하는 데 사용됩니다.
path
매개 변수는 UNC(유니버설 명명 규칙) 공유의 파일을 포함하여 파일 이름이 될 수 있습니다.
메모
path
디스크에 저장된 파일일 필요는 없습니다. 스트림을 통한 액세스를 지원하는 시스템의 일부일 수 있습니다. 예를 들어 시스템에 따라 이 클래스는 물리적 디바이스에 액세스할 수 있습니다.
CanSeek 파일을 캡슐화하는 모든 FileStream 개체에 대해 true
.
path
검색을 지원하지 않는 디바이스를 나타내는 경우 결과 FileStreamCanSeek 속성이 false
. 자세한 내용은 CanSeek참조하세요.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
중요하다
이 생성자는 .NET Core에 없습니다. 대신 .NET Core 3.1부터 System.Security.AccessControl
어셈블리 내에서 FileSystemAclExtensions
클래스의 다음 확장 메서드인 Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)사용할 수 있습니다.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions)
지정된 경로, 생성 모드, 액세스 권한 및 공유 권한, 버퍼 크기 및 추가 파일 옵션을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(System::String ^ path, System::IO::FileMode mode, System::Security::AccessControl::FileSystemRights rights, System::IO::FileShare share, int bufferSize, System::IO::FileOptions options);
public FileStream (string path, System.IO.FileMode mode, System.Security.AccessControl.FileSystemRights rights, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options);
new System.IO.FileStream : string * System.IO.FileMode * System.Security.AccessControl.FileSystemRights * System.IO.FileShare * int * System.IO.FileOptions -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, rights As FileSystemRights, share As FileShare, bufferSize As Integer, options As FileOptions)
매개 변수
- path
- String
현재 FileStream 개체가 캡슐화할 파일의 상대 또는 절대 경로입니다.
- mode
- FileMode
파일을 열거나 만드는 방법을 결정하는 열거형 값 중 하나입니다.
- rights
- FileSystemRights
파일에 대한 액세스 및 감사 규칙을 만들 때 사용할 액세스 권한을 결정하는 열거형 값의 비트 조합입니다.
- share
- FileShare
프로세스에서 파일을 공유하는 방법을 결정하는 열거형 값의 비트 조합입니다.
- options
- FileOptions
추가 파일 옵션을 지정하는 열거형 값의 비트 조합입니다.
예외
path
null
.
.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: path
빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.
-또는-
path
NTFS 환경에서 "con:", "com1:", "lpt1:" 등과 같은 파일이 아닌 디바이스를 나타냅니다.
path
비 NTFS 환경에서 "con:", "com1:", "lpt1:"와 같은 비 파일 디바이스를 참조합니다.
mode
FileMode.Truncate
또는 FileMode.Open
path
지정된 파일이 없는 경우와 같이 파일을 찾을 수 없습니다. 파일이 이러한 모드에 이미 있어야 합니다.
현재 운영 체제는 Windows NT 이상이 아닙니다.
호출자에게 필요한 권한이 없습니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).
요청된 access
지정된 path
대해 운영 체제에서 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 또는 디렉터리가 읽기 전용 액세스용으로 설정된 경우).
-또는-
Encrypted
options
대해 지정되지만 현재 플랫폼에서는 파일 암호화가 지원되지 않습니다.
지정된 path
, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다.
설명
.NET Framework는 디바이스 이름인 경로(예: "\\.\PHYSICALDRIVE0")를 통해 실제 디스크에 대한 직접 액세스를 지원하지 않습니다.
이 FileStream 생성자를 사용하여 파일을 만들 때 액세스 권한을 적용합니다. 기존 파일에 대한 권한에 액세스하거나 수정하려면 GetAccessControl 및 SetAccessControl 메서드를 사용하는 것이 좋습니다.
fileOptions
매개 변수는 FileStream 개체를 만들 때 사용할 수 있는 고급 작업에 대한 액세스를 제공하는 데 사용됩니다.
path
매개 변수는 UNC(유니버설 명명 규칙) 공유의 파일을 포함하여 파일 이름이 될 수 있습니다.
메모
path
디스크에 저장된 파일일 필요는 없습니다. 스트림을 통한 액세스를 지원하는 시스템의 일부일 수 있습니다. 예를 들어 시스템에 따라 이 클래스는 물리적 디바이스에 액세스할 수 있습니다.
CanSeek 파일을 캡슐화하는 모든 FileStream 개체에 대해 true
.
path
검색을 지원하지 않는 디바이스를 나타내는 경우 결과 FileStreamCanSeek 속성이 false
. 자세한 내용은 CanSeek참조하세요.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한, 다른 FileStreams가 동일한 파일, 버퍼 크기 및 추가 파일 옵션에 대해 가질 수 있는 액세스 권한을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share, int bufferSize, System::IO::FileOptions options);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * int * System.IO.FileOptions -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare, bufferSize As Integer, options As FileOptions)
매개 변수
- path
- String
현재 FileStream
개체가 캡슐화할 파일의 상대 또는 절대 경로입니다.
- mode
- FileMode
파일을 열거나 만드는 방법을 결정하는 열거형 값 중 하나입니다.
- access
- FileAccess
FileStream
개체에서 파일에 액세스하는 방법을 결정하는 열거형 값의 비트 조합입니다. 또한 FileStream
개체의 CanRead 및 CanWrite 속성에서 반환되는 값도 결정합니다.
path
디스크 파일을 지정하는 경우 CanSeektrue
.
- share
- FileShare
프로세스에서 파일을 공유하는 방법을 결정하는 열거형 값의 비트 조합입니다.
- options
- FileOptions
추가 파일 옵션을 지정하는 열거형 값의 비트 조합입니다.
예외
path
null
.
.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: path
빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.
-또는-
path
NTFS 환경에서 "con:", "com1:", "lpt1:" 등과 같은 파일이 아닌 디바이스를 나타냅니다.
path
비 NTFS 환경에서 "con:", "com1:", "lpt1:"와 같은 비 파일 디바이스를 참조합니다.
mode
FileMode.Truncate
또는 FileMode.Open
path
지정된 파일이 없는 경우와 같이 파일을 찾을 수 없습니다. 파일이 이러한 모드에 이미 있어야 합니다.
호출자에게 필요한 권한이 없습니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).
요청된 access
지정된 path
대해 운영 체제에서 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 또는 디렉터리가 읽기 전용 액세스용으로 설정된 경우).
-또는-
Encrypted
options
대해 지정되지만 현재 플랫폼에서는 파일 암호화가 지원되지 않습니다.
지정된 경로, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다.
예제
다음 예제에서는 파일에 데이터를 쓴 다음 FileStream 개체를 사용하여 데이터를 읽습니다.
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Security::AccessControl;
int main()
{
try
{
// Create a file and write data to it.
// Create an array of bytes.
array<Byte>^ messageByte =
Encoding::ASCII->GetBytes("Here is some data.");
// Create a file using the FileStream class.
FileStream^ fWrite = gcnew FileStream("test.txt", FileMode::Create,
FileAccess::ReadWrite, FileShare::None, 8, FileOptions::None);
// Write the number of bytes to the file.
fWrite->WriteByte((Byte)messageByte->Length);
// Write the bytes to the file.
fWrite->Write(messageByte, 0, messageByte->Length);
// Close the stream.
fWrite->Close();
// Open a file and read the number of bytes.
FileStream^ fRead = gcnew FileStream("test.txt",
FileMode::Open);
// The first byte is the string length.
int length = (int)fRead->ReadByte();
// Create a new byte array for the data.
array<Byte>^ readBytes = gcnew array<Byte>(length);
// Read the data from the file.
fRead->Read(readBytes, 0, readBytes->Length);
// Close the stream.
fRead->Close();
// Display the data.
Console::WriteLine(Encoding::ASCII->GetString(readBytes));
Console::WriteLine("Done writing and reading data.");
}
catch (IOException^ ex)
{
Console::WriteLine(ex->Message);
}
}
using System;
using System.IO;
using System.Text;
using System.Security.AccessControl;
namespace FileSystemExample
{
class FileStreamExample
{
public static void Main()
{
try
{
// Create a file and write data to it.
// Create an array of bytes.
byte[] messageByte = Encoding.ASCII.GetBytes("Here is some data.");
// Create a file using the FileStream class.
FileStream fWrite = new FileStream("test.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.None, 8, FileOptions.None);
// Write the number of bytes to the file.
fWrite.WriteByte((byte)messageByte.Length);
// Write the bytes to the file.
fWrite.Write(messageByte, 0, messageByte.Length);
// Close the stream.
fWrite.Close();
// Open a file and read the number of bytes.
FileStream fRead = new FileStream("test.txt", FileMode.Open);
// The first byte is the string length.
int length = (int)fRead.ReadByte();
// Create a new byte array for the data.
byte[] readBytes = new byte[length];
// Read the data from the file.
fRead.Read(readBytes, 0, readBytes.Length);
// Close the stream.
fRead.Close();
// Display the data.
Console.WriteLine(Encoding.ASCII.GetString(readBytes));
Console.WriteLine("Done writing and reading data.");
}
catch (Exception e)
{
Console.WriteLine(e);
}
Console.ReadLine();
}
}
}
open System.IO
open System.Text
try
// Create a file and write data to it.
// Create an array of bytes.
let messageByte = Encoding.ASCII.GetBytes "Here is some data."
// Create a file using the FileStream class.
let fWrite =
new FileStream("test.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.None, 8, FileOptions.None)
// Write the number of bytes to the file.
byte messageByte.Length |> fWrite.WriteByte
// Write the bytes to the file.
fWrite.Write(messageByte, 0, messageByte.Length)
// Close the stream.
fWrite.Close()
// Open a file and read the number of bytes.
let fRead = new FileStream("test.txt", FileMode.Open)
// The first byte is the string length.
let length = fRead.ReadByte() |> int
// Create a new byte array for the data.
let readBytes = Array.zeroCreate length
// Read the data from the file.
fRead.Read(readBytes, 0, readBytes.Length) |> ignore
// Close the stream.
fRead.Close()
// Display the data.
printfn $"{Encoding.ASCII.GetString readBytes}"
printfn "Done writing and reading data."
with e ->
printfn $"{e}"
Imports System.IO
Imports System.Text
Imports System.Security.AccessControl
Module FileStreamExample
Sub Main()
Try
' Create a file and write data to it.
' Create an array of bytes.
Dim messageByte As Byte() = Encoding.ASCII.GetBytes("Here is some data.")
' Create a file using the FileStream class.
Dim fWrite As New FileStream("test.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.None, 8, FileOptions.None)
' Write the number of bytes to the file.
fWrite.WriteByte(System.Convert.ToByte(messageByte.Length))
' Write the bytes to the file.
fWrite.Write(messageByte, 0, messageByte.Length)
' Close the stream.
fWrite.Close()
' Open a file and read the number of bytes.
Dim fRead As New FileStream("test.txt", FileMode.Open)
' The first byte is the string length.
Dim length As Integer = Fix(fRead.ReadByte())
' Create a new byte array for the data.
Dim readBytes(length) As Byte
' Read the data from the file.
fRead.Read(readBytes, 0, readBytes.Length)
' Close the stream.
fRead.Close()
' Display the data.
Console.WriteLine(Encoding.ASCII.GetString(readBytes))
Console.WriteLine("Done writing and reading data.")
Catch e As Exception
Console.WriteLine(e)
End Try
Console.ReadLine()
End Sub
End Module
설명
.NET Framework는 디바이스 이름인 경로(예: "\\.\PHYSICALDRIVE0")를 통해 실제 디스크에 대한 직접 액세스를 지원하지 않습니다.
fileOptions
매개 변수는 FileStream 개체를 만들 때 활용할 수 있는 고급 작업에 대한 액세스를 제공하는 데 사용됩니다.
path
매개 변수는 UNC(유니버설 명명 규칙) 공유의 파일을 포함하여 파일 이름이 될 수 있습니다.
메모
path
디스크에 저장된 파일일 필요는 없습니다. 스트림을 통한 액세스를 지원하는 시스템의 일부일 수 있습니다. 예를 들어 시스템에 따라 이 클래스는 물리적 디바이스에 액세스할 수 있습니다.
CanSeek 파일을 캡슐화하는 모든 FileStream 개체에 대해 true
.
path
검색을 지원하지 않는 디바이스를 나타내는 경우 결과 FileStreamCanSeek 속성이 false
. 자세한 내용은 CanSeek참조하세요.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(String, FileMode, FileAccess, FileShare, Int32)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한 및 버퍼 크기를 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share, int bufferSize);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * int -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare, bufferSize As Integer)
매개 변수
- path
- String
현재 FileStream
개체가 캡슐화할 파일의 상대 또는 절대 경로입니다.
- mode
- FileMode
파일을 열거나 만드는 방법을 결정하는 열거형 값 중 하나입니다.
- access
- FileAccess
FileStream
개체에서 파일에 액세스하는 방법을 결정하는 열거형 값의 비트 조합입니다. 또한 FileStream
개체의 CanRead 및 CanWrite 속성에서 반환되는 값도 결정합니다.
path
디스크 파일을 지정하는 경우 CanSeektrue
.
- share
- FileShare
프로세스에서 파일을 공유하는 방법을 결정하는 열거형 값의 비트 조합입니다.
예외
path
null
.
.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: path
빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.
-또는-
path
NTFS 환경에서 "con:", "com1:", "lpt1:" 등과 같은 파일이 아닌 디바이스를 나타냅니다.
path
비 NTFS 환경에서 "con:", "com1:", "lpt1:"와 같은 비 파일 디바이스를 참조합니다.
mode
FileMode.Truncate
또는 FileMode.Open
path
지정된 파일이 없는 경우와 같이 파일을 찾을 수 없습니다. 파일이 이러한 모드에 이미 있어야 합니다.
호출자에게 필요한 권한이 없습니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).
요청된 access
지정된 path
대해 운영 체제에서 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 또는 디렉터리가 읽기 전용 액세스용으로 설정된 경우).
지정된 경로, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다.
설명
.NET Framework는 디바이스 이름인 경로(예: "\\.\PHYSICALDRIVE0")를 통해 실제 디스크에 대한 직접 액세스를 지원하지 않습니다.
path
매개 변수는 UNC(유니버설 명명 규칙) 공유의 파일을 포함하여 파일 이름이 될 수 있습니다.
메모
path
디스크에 저장된 파일일 필요는 없습니다. 스트림을 통한 액세스를 지원하는 시스템의 일부일 수 있습니다. 예를 들어 시스템에 따라 이 클래스는 물리적 디바이스에 액세스할 수 있습니다.
CanSeek 파일을 캡슐화하는 모든 FileStream 개체에 대해 true
.
path
검색을 지원하지 않는 디바이스를 나타내는 경우 결과 FileStreamCanSeek 속성이 false
. 자세한 내용은 CanSeek참조하세요.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
주의
This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. https://go.microsoft.com/fwlink/?linkid=14202
주의
This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.
주의
This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. http://go.microsoft.com/fwlink/?linkid=14202
지정된 읽기/쓰기 권한, FileStream
인스턴스 소유권, 버퍼 크기 및 동기 또는 비동기 상태를 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(IntPtr handle, System::IO::FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
[System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
[System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
[System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. http://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
[<System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. https://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int * bool -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int * bool -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. http://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int * bool -> System.IO.FileStream
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int * bool -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess, ownsHandle As Boolean, bufferSize As Integer, isAsync As Boolean)
매개 변수
- handle
-
IntPtr
nativeint
이 FileStream
개체가 캡슐화할 파일에 대한 파일 핸들입니다.
- access
- FileAccess
- ownsHandle
- Boolean
이 FileStream
인스턴스에서 파일 핸들을 소유할지 true
. 그렇지 않으면 false
.
- isAsync
- Boolean
핸들이 비동기적으로 열렸는지(즉, 겹치는 I/O 모드에서) true
. 그렇지 않으면 false
.
- 특성
예외
access
FileAccess.Read
미만이거나 FileAccess.ReadWrite
보다 크거나 bufferSize
0보다 작거나 같습니다.
핸들이 잘못되었습니다.
호출자에게 필요한 권한이 없습니다.
요청된 access
운영 체제에서 지정된 파일 핸들에 대해 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 핸들이 읽기 전용 액세스로 설정된 경우).
설명
FileStream
개체에는 지정된 파일에 대한 액세스 권한이 부여됩니다. 핸들의 소유권은 지정된 대로 지정됩니다. 이 FileStream
핸들을 소유하는 경우 Close 메서드를 호출하면 핸들도 닫힙니다. 특히 파일의 핸들 수는 감소합니다.
FileStream
개체에는 지정된 버퍼 크기가 지정됩니다.
FileStream
핸들을 단독으로 제어할 수 있다고 가정합니다.
FileStream
핸들을 들고 있는 동안 읽기, 쓰기 또는 검색하면 데이터가 손상될 수 있습니다. 데이터 안전을 위해 핸들을 사용하기 전에 Flush 호출하고 핸들 사용을 완료한 후 Close
이외의 메서드를 호출하지 않습니다. 또는 이 FileStream
생성자를 호출하기 전에 핸들을 읽고 씁니다.
FileShare.Read
FileShare
매개 변수가 없는 FileStream 생성자의 기본값입니다.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(String, FileMode, FileAccess, FileShare)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 경로, 생성 모드, 읽기/쓰기 권한 및 공유 권한을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare)
매개 변수
- path
- String
현재 FileStream
개체가 캡슐화할 파일의 상대 또는 절대 경로입니다.
- mode
- FileMode
파일을 열거나 만드는 방법을 결정하는 열거형 값 중 하나입니다.
- access
- FileAccess
FileStream
개체에서 파일에 액세스하는 방법을 결정하는 열거형 값의 비트 조합입니다. 또한 FileStream
개체의 CanRead 및 CanWrite 속성에서 반환되는 값도 결정합니다.
path
디스크 파일을 지정하는 경우 CanSeektrue
.
- share
- FileShare
프로세스에서 파일을 공유하는 방법을 결정하는 열거형 값의 비트 조합입니다.
예외
path
null
.
.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: path
빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.
-또는-
path
NTFS 환경에서 "con:", "com1:", "lpt1:" 등과 같은 파일이 아닌 디바이스를 나타냅니다.
path
비 NTFS 환경에서 "con:", "com1:", "lpt1:"와 같은 비 파일 디바이스를 참조합니다.
mode
FileMode.Truncate
또는 FileMode.Open
path
지정된 파일이 없는 경우와 같이 파일을 찾을 수 없습니다. 파일이 이러한 모드에 이미 있어야 합니다.
호출자에게 필요한 권한이 없습니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).
요청된 access
지정된 path
대해 운영 체제에서 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 또는 디렉터리가 읽기 전용 액세스용으로 설정된 경우).
지정된 경로, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다.
mode
잘못된 값을 포함합니다.
예제
이 코드 예제는 Lock 메서드에 제공된 더 큰 예제의 일부입니다.
FileStream^ fileStream = gcnew FileStream( "Test#@@#.dat",FileMode::OpenOrCreate,FileAccess::ReadWrite,FileShare::ReadWrite );
using(FileStream fileStream = new FileStream(
"Test#@@#.dat", FileMode.OpenOrCreate,
FileAccess.ReadWrite, FileShare.ReadWrite))
use fileStream =
new FileStream("Test#@@#.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)
Dim aFileStream As New FileStream( _
"Test#@@#.dat", FileMode.OpenOrCreate, _
FileAccess.ReadWrite, FileShare.ReadWrite)
설명
.NET Framework는 디바이스 이름인 경로(예: "\\.\PHYSICALDRIVE0")를 통해 실제 디스크에 대한 직접 액세스를 지원하지 않습니다.
path
매개 변수는 UNC(유니버설 명명 규칙) 공유의 파일을 포함하여 파일 이름이 될 수 있습니다.
생성자에는 파일에 대한 읽기/쓰기 권한이 부여되며 읽기 액세스 공유가 열립니다. 즉, FileStream
이 개체가 닫혀 있지만 읽기 시도가 성공할 때까지 이 프로세스 또는 다른 프로세스에서 쓰기 위해 파일을 열라는 요청이 실패합니다. 버퍼 크기는 기본 크기 4096바이트(4KB)로 설정됩니다.
메모
path
디스크에 저장된 파일일 필요는 없습니다. 스트림을 통한 액세스를 지원하는 시스템의 일부일 수 있습니다. 예를 들어 시스템에 따라 이 클래스는 물리적 디바이스에 액세스할 수 있습니다.
CanSeek 파일을 캡슐화하는 모든 FileStream 개체에 대해 true
.
path
검색을 지원하지 않는 디바이스를 나타내는 경우 결과 FileStreamCanSeek 속성이 false
. 자세한 내용은 CanSeek참조하세요.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(IntPtr, FileAccess, Boolean, Int32)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
주의
This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. https://go.microsoft.com/fwlink/?linkid=14202
주의
This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.
주의
This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. http://go.microsoft.com/fwlink/?linkid=14202
지정된 읽기/쓰기 권한, FileStream
인스턴스 소유권 및 버퍼 크기를 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(IntPtr handle, System::IO::FileAccess access, bool ownsHandle, int bufferSize);
[System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize);
[System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize);
[System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. http://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize);
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize);
[<System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. https://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. http://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int -> System.IO.FileStream
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess, ownsHandle As Boolean, bufferSize As Integer)
매개 변수
- handle
-
IntPtr
nativeint
이 FileStream
개체가 캡슐화할 파일에 대한 파일 핸들입니다.
- access
- FileAccess
- ownsHandle
- Boolean
이 FileStream
인스턴스에서 파일 핸들을 소유할지 true
. 그렇지 않으면 false
.
- 특성
예외
bufferSize
음수입니다.
호출자에게 필요한 권한이 없습니다.
요청된 access
운영 체제에서 지정된 파일 핸들에 대해 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 핸들이 읽기 전용 액세스로 설정된 경우).
설명
FileStream
개체에는 지정된 파일에 대한 액세스 권한이 부여됩니다. 핸들의 소유권은 지정된 대로 지정됩니다. 이 FileStream
핸들을 소유하는 경우 Close 메서드를 호출하면 핸들도 닫힙니다. 특히 파일의 핸들 수는 감소합니다.
FileStream
개체에는 지정된 버퍼 크기가 지정됩니다.
FileStream
핸들을 단독으로 제어할 수 있다고 가정합니다.
FileStream
핸들을 들고 있는 동안 읽기, 쓰기 또는 검색하면 데이터가 손상될 수 있습니다. 데이터 안전을 위해 핸들을 사용하기 전에 Flush 호출하고 핸들 사용을 완료한 후 Close
이외의 메서드를 호출하지 않습니다. 또는 이 FileStream
생성자를 호출하기 전에 핸들을 읽고 씁니다.
FileShare.Read
FileShare
매개 변수가 없는 FileStream 생성자의 기본값입니다.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한, 버퍼 크기, 동기 또는 비동기 상태를 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share, int bufferSize, bool useAsync);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * int * bool -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare, bufferSize As Integer, useAsync As Boolean)
매개 변수
- path
- String
현재 FileStream
개체가 캡슐화할 파일의 상대 또는 절대 경로입니다.
- mode
- FileMode
파일을 열거나 만드는 방법을 결정하는 열거형 값 중 하나입니다.
- access
- FileAccess
FileStream
개체에서 파일에 액세스하는 방법을 결정하는 열거형 값의 비트 조합입니다. 또한 FileStream
개체의 CanRead 및 CanWrite 속성에서 반환되는 값도 결정합니다.
path
디스크 파일을 지정하는 경우 CanSeektrue
.
- share
- FileShare
프로세스에서 파일을 공유하는 방법을 결정하는 열거형 값의 비트 조합입니다.
- useAsync
- Boolean
비동기 I/O 또는 동기 I/O를 사용할지 여부를 지정합니다. 그러나 기본 운영 체제는 비동기 I/O를 지원하지 않을 수 있으므로 true
지정할 때 플랫폼에 따라 핸들이 동기적으로 열릴 수 있습니다. 비동기적으로 열면 BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 및 BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) 메서드가 큰 읽기 또는 쓰기에서 더 잘 수행되지만 작은 읽기 또는 쓰기의 경우 훨씬 느려질 수 있습니다. 애플리케이션이 비동기 I/O를 활용하도록 설계된 경우 useAsync
매개 변수를 true
설정합니다. 비동기 I/O를 올바르게 사용하면 애플리케이션 속도를 10배만큼 높일 수 있지만 비동기 I/O용 애플리케이션을 다시 디자인하지 않고 사용하면 성능을 10배만큼 줄일 수 있습니다.
예외
path
null
.
.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: path
빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.
-또는-
path
NTFS 환경에서 "con:", "com1:", "lpt1:" 등과 같은 파일이 아닌 디바이스를 나타냅니다.
path
비 NTFS 환경에서 "con:", "com1:", "lpt1:"와 같은 비 파일 디바이스를 참조합니다.
mode
FileMode.Truncate
또는 FileMode.Open
path
지정된 파일이 없는 경우와 같이 파일을 찾을 수 없습니다. 파일이 이러한 모드에 이미 있어야 합니다.
호출자에게 필요한 권한이 없습니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).
요청된 access
지정된 path
대해 운영 체제에서 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 또는 디렉터리가 읽기 전용 액세스용으로 설정된 경우).
지정된 경로, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다.
예제
다음 코드 예제에서는 파일에 데이터를 비동기적으로 쓴 다음 데이터가 올바르게 작성되었는지 확인하는 방법을 보여 있습니다. 주 스레드에서 EndReadCallback
및 EndWriteCallback
메서드로 정보를 전달하기 위해 State
개체가 만들어집니다.
using namespace System;
using namespace System::IO;
using namespace System::Threading;
// Maintain state information to be passed to
// EndWriteCallback and EndReadCallback.
ref class State
{
private:
// fStream is used to read and write to the file.
FileStream^ fStream;
// writeArray stores data that is written to the file.
array<Byte>^writeArray;
// readArray stores data that is read from the file.
array<Byte>^readArray;
// manualEvent signals the main thread
// when verification is complete.
ManualResetEvent^ manualEvent;
public:
State( FileStream^ fStream, array<Byte>^writeArray, ManualResetEvent^ manualEvent )
{
this->fStream = fStream;
this->writeArray = writeArray;
this->manualEvent = manualEvent;
readArray = gcnew array<Byte>(writeArray->Length);
}
property FileStream^ FStream
{
FileStream^ get()
{
return fStream;
}
}
property array<Byte>^ WriteArray
{
array<Byte>^ get()
{
return writeArray;
}
}
property array<Byte>^ ReadArray
{
array<Byte>^ get()
{
return readArray;
}
}
property ManualResetEvent^ ManualEvent
{
ManualResetEvent^ get()
{
return manualEvent;
}
}
};
ref class FStream
{
private:
// When BeginRead is finished reading data from the file, the
// EndReadCallback method is called to end the asynchronous
// read operation and then verify the data.
static void EndReadCallback( IAsyncResult^ asyncResult )
{
State^ tempState = dynamic_cast<State^>(asyncResult->AsyncState);
int readCount = tempState->FStream->EndRead( asyncResult );
int i = 0;
while ( i < readCount )
{
if ( tempState->ReadArray[ i ] != tempState->WriteArray[ i++ ] )
{
Console::WriteLine( "Error writing data." );
tempState->FStream->Close();
return;
}
}
Console::WriteLine( "The data was written to {0} "
"and verified.", tempState->FStream->Name );
tempState->FStream->Close();
// Signal the main thread that the verification is finished.
tempState->ManualEvent->Set();
}
public:
// When BeginWrite is finished writing data to the file, the
// EndWriteCallback method is called to end the asynchronous
// write operation and then read back and verify the data.
static void EndWriteCallback( IAsyncResult^ asyncResult )
{
State^ tempState = dynamic_cast<State^>(asyncResult->AsyncState);
FileStream^ fStream = tempState->FStream;
fStream->EndWrite( asyncResult );
// Asynchronously read back the written data.
fStream->Position = 0;
asyncResult = fStream->BeginRead( tempState->ReadArray, 0, tempState->ReadArray->Length, gcnew AsyncCallback( &FStream::EndReadCallback ), tempState );
// Concurrently do other work, such as
// logging the write operation.
}
};
int main()
{
// Create a synchronization object that gets
// signaled when verification is complete.
ManualResetEvent^ manualEvent = gcnew ManualResetEvent( false );
// Create the data to write to the file.
array<Byte>^writeArray = gcnew array<Byte>(100000);
(gcnew Random)->NextBytes( writeArray );
FileStream^ fStream = gcnew FileStream( "Test#@@#.dat",FileMode::Create,FileAccess::ReadWrite,FileShare::None,4096,true );
// Check that the FileStream was opened asynchronously.
Console::WriteLine( "fStream was {0}opened asynchronously.", fStream->IsAsync ? (String^)"" : "not " );
// Asynchronously write to the file.
IAsyncResult^ asyncResult = fStream->BeginWrite( writeArray, 0, writeArray->Length, gcnew AsyncCallback( &FStream::EndWriteCallback ), gcnew State( fStream,writeArray,manualEvent ) );
// Concurrently do other work and then wait
// for the data to be written and verified.
manualEvent->WaitOne( 5000, false );
}
using System;
using System.IO;
using System.Threading;
class FStream
{
static void Main()
{
// Create a synchronization object that gets
// signaled when verification is complete.
ManualResetEvent manualEvent = new ManualResetEvent(false);
// Create random data to write to the file.
byte[] writeArray = new byte[100000];
new Random().NextBytes(writeArray);
FileStream fStream =
new FileStream("Test#@@#.dat", FileMode.Create,
FileAccess.ReadWrite, FileShare.None, 4096, true);
// Check that the FileStream was opened asynchronously.
Console.WriteLine("fStream was {0}opened asynchronously.",
fStream.IsAsync ? "" : "not ");
// Asynchronously write to the file.
IAsyncResult asyncResult = fStream.BeginWrite(
writeArray, 0, writeArray.Length,
new AsyncCallback(EndWriteCallback),
new State(fStream, writeArray, manualEvent));
// Concurrently do other work and then wait
// for the data to be written and verified.
manualEvent.WaitOne(5000, false);
}
// When BeginWrite is finished writing data to the file, the
// EndWriteCallback method is called to end the asynchronous
// write operation and then read back and verify the data.
static void EndWriteCallback(IAsyncResult asyncResult)
{
State tempState = (State)asyncResult.AsyncState;
FileStream fStream = tempState.FStream;
fStream.EndWrite(asyncResult);
// Asynchronously read back the written data.
fStream.Position = 0;
asyncResult = fStream.BeginRead(
tempState.ReadArray, 0 , tempState.ReadArray.Length,
new AsyncCallback(EndReadCallback), tempState);
// Concurrently do other work, such as
// logging the write operation.
}
// When BeginRead is finished reading data from the file, the
// EndReadCallback method is called to end the asynchronous
// read operation and then verify the data.
static void EndReadCallback(IAsyncResult asyncResult)
{
State tempState = (State)asyncResult.AsyncState;
int readCount = tempState.FStream.EndRead(asyncResult);
int i = 0;
while(i < readCount)
{
if(tempState.ReadArray[i] != tempState.WriteArray[i++])
{
Console.WriteLine("Error writing data.");
tempState.FStream.Close();
return;
}
}
Console.WriteLine("The data was written to {0} and verified.",
tempState.FStream.Name);
tempState.FStream.Close();
// Signal the main thread that the verification is finished.
tempState.ManualEvent.Set();
}
// Maintain state information to be passed to
// EndWriteCallback and EndReadCallback.
class State
{
// fStream is used to read and write to the file.
FileStream fStream;
// writeArray stores data that is written to the file.
byte[] writeArray;
// readArray stores data that is read from the file.
byte[] readArray;
// manualEvent signals the main thread
// when verification is complete.
ManualResetEvent manualEvent;
public State(FileStream fStream, byte[] writeArray,
ManualResetEvent manualEvent)
{
this.fStream = fStream;
this.writeArray = writeArray;
this.manualEvent = manualEvent;
readArray = new byte[writeArray.Length];
}
public FileStream FStream
{ get{ return fStream; } }
public byte[] WriteArray
{ get{ return writeArray; } }
public byte[] ReadArray
{ get{ return readArray; } }
public ManualResetEvent ManualEvent
{ get{ return manualEvent; } }
}
}
open System
open System.IO
open System.Threading
// Maintain state information to be passed to
// EndWriteCallback and EndReadCallback.
type State(fStream: FileStream, writeArray: byte[], manualEvent: ManualResetEvent) =
// readArray stores data that is read from the file.
let readArray = Array.zeroCreate writeArray.Length
member _.FStream = fStream
member _.WriteArray = writeArray
member _.ReadArray = readArray
member _.ManualEvent = manualEvent
// When BeginRead is finished reading data from the file, the
// EndReadCallback method is called to end the asynchronous
// read operation and then verify the data.
let endReadCallback (asyncResult: IAsyncResult) =
let tempState = asyncResult.AsyncState :?> State
let readCount = tempState.FStream.EndRead asyncResult
let mutable i = 0
let mutable errored = false
while i < readCount do
if tempState.ReadArray[i] <> tempState.WriteArray[i] then
printfn "Error writing data."
tempState.FStream.Close()
errored <- true
i <- readCount
i <- i + 1
printfn $"The data was written to {tempState.FStream.Name} and verified."
tempState.FStream.Close()
// Signal the main thread that the verification is finished.
tempState.ManualEvent.Set() |> ignore
// When BeginWrite is finished writing data to the file, the
// EndWriteCallback method is called to end the asynchronous
// write operation and then read back and verify the data.
let endWriteCallback (asyncResult: IAsyncResult) =
let tempState = asyncResult.AsyncState :?> State
let fStream = tempState.FStream
fStream.EndWrite asyncResult
// Asynchronously read back the written data.
fStream.Position <- 0
let asyncResult =
fStream.BeginRead(tempState.ReadArray, 0, tempState.ReadArray.Length, AsyncCallback endReadCallback, tempState)
// Concurrently do other work, such as
// logging the write operation.
()
// Create a synchronization object that gets
// signaled when verification is complete.
let manualEvent = new ManualResetEvent false
// Create random data to write to the file.
let writeArray = Array.zeroCreate 100000
Random.Shared.NextBytes writeArray
let fStream =
new FileStream("Test#@@#.dat", FileMode.Create, FileAccess.ReadWrite, FileShare.None, 4096, true)
// Check that the FileStream was opened asynchronously.
if fStream.IsAsync then "" else "not "
|> printfn "fStream was %sopened asynchronously."
// Asynchronously write to the file.
let asyncResult =
fStream.BeginWrite(
writeArray,
0,
writeArray.Length,
AsyncCallback endWriteCallback,
State(fStream, writeArray, manualEvent)
)
// Concurrently do other work and then wait
// for the data to be written and verified.
manualEvent.WaitOne(5000, false) |> ignore
Imports System.IO
Imports System.Threading
Class FStream
Shared Sub Main()
' Create a synchronization object that gets
' signaled when verification is complete.
Dim manualEvent As New ManualResetEvent(False)
' Create random data to write to the file.
Dim writeArray(100000) As Byte
Dim randomGenerator As New Random()
randomGenerator.NextBytes(writeArray)
Dim fStream As New FileStream("Test#@@#.dat", _
FileMode.Create, FileAccess.ReadWrite, _
FileShare.None, 4096, True)
' Check that the FileStream was opened asynchronously.
If fStream.IsAsync = True
Console.WriteLine("fStream was opened asynchronously.")
Else
Console.WriteLine("fStream was not opened asynchronously.")
End If
' Asynchronously write to the file.
Dim asyncResult As IAsyncResult = fStream.BeginWrite( _
writeArray, 0, writeArray.Length, _
AddressOf EndWriteCallback , _
New State(fStream, writeArray, manualEvent))
' Concurrently do other work and then wait
' for the data to be written and verified.
manualEvent.WaitOne(5000, False)
End Sub
' When BeginWrite is finished writing data to the file, the
' EndWriteCallback method is called to end the asynchronous
' write operation and then read back and verify the data.
Private Shared Sub EndWriteCallback(asyncResult As IAsyncResult)
Dim tempState As State = _
DirectCast(asyncResult.AsyncState, State)
Dim fStream As FileStream = tempState.FStream
fStream.EndWrite(asyncResult)
' Asynchronously read back the written data.
fStream.Position = 0
asyncResult = fStream.BeginRead( _
tempState.ReadArray, 0 , tempState.ReadArray.Length, _
AddressOf EndReadCallback, tempState)
' Concurrently do other work, such as
' logging the write operation.
End Sub
' When BeginRead is finished reading data from the file, the
' EndReadCallback method is called to end the asynchronous
' read operation and then verify the data.
Private Shared Sub EndReadCallback(asyncResult As IAsyncResult)
Dim tempState As State = _
DirectCast(asyncResult.AsyncState, State)
Dim readCount As Integer = _
tempState.FStream.EndRead(asyncResult)
Dim i As Integer = 0
While(i < readCount)
If(tempState.ReadArray(i) <> tempState.WriteArray(i))
Console.WriteLine("Error writing data.")
tempState.FStream.Close()
Return
End If
i += 1
End While
Console.WriteLine("The data was written to {0} and " & _
"verified.", tempState.FStream.Name)
tempState.FStream.Close()
' Signal the main thread that the verification is finished.
tempState.ManualEvent.Set()
End Sub
' Maintain state information to be passed to
' EndWriteCallback and EndReadCallback.
Private Class State
' fStreamValue is used to read and write to the file.
Dim fStreamValue As FileStream
' writeArrayValue stores data that is written to the file.
Dim writeArrayValue As Byte()
' readArrayValue stores data that is read from the file.
Dim readArrayValue As Byte()
' manualEvent signals the main thread
' when verification is complete.
Dim manualEventValue As ManualResetEvent
Sub New(aStream As FileStream, anArray As Byte(), _
manualEvent As ManualResetEvent)
fStreamValue = aStream
writeArrayValue = anArray
manualEventValue = manualEvent
readArrayValue = New Byte(anArray.Length - 1){}
End Sub
Public ReadOnly Property FStream() As FileStream
Get
Return fStreamValue
End Get
End Property
Public ReadOnly Property WriteArray() As Byte()
Get
Return writeArrayValue
End Get
End Property
Public ReadOnly Property ReadArray() As Byte()
Get
Return readArrayValue
End Get
End Property
Public ReadOnly Property ManualEvent() As ManualResetEvent
Get
Return manualEventValue
End Get
End Property
End Class
End Class
설명
.NET Framework는 디바이스 이름인 경로(예: "\\.\PHYSICALDRIVE0")를 통해 실제 디스크에 대한 직접 액세스를 지원하지 않습니다.
path
매개 변수는 UNC(유니버설 명명 규칙) 공유의 파일을 포함하여 파일 이름이 될 수 있습니다.
메모
path
디스크에 저장된 파일일 필요는 없습니다. 스트림을 통한 액세스를 지원하는 시스템의 일부일 수 있습니다. 예를 들어 시스템에 따라 이 클래스는 물리적 디바이스에 액세스할 수 있습니다.
CanSeek 파일을 캡슐화하는 모든 FileStream 개체에 대해 true
.
path
검색을 지원하지 않는 디바이스를 나타내는 경우 결과 FileStreamCanSeek 속성이 false
. 자세한 내용은 CanSeek참조하세요.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- File
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(String, FileMode, FileAccess)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 경로, 생성 모드 및 읽기/쓰기 권한을 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess)
매개 변수
- path
- String
현재 FileStream
개체가 캡슐화할 파일의 상대 또는 절대 경로입니다.
- mode
- FileMode
파일을 열거나 만드는 방법을 결정하는 열거형 값 중 하나입니다.
- access
- FileAccess
FileStream
개체에서 파일에 액세스하는 방법을 결정하는 열거형 값의 비트 조합입니다. 또한 FileStream
개체의 CanRead 및 CanWrite 속성에서 반환되는 값도 결정합니다.
path
디스크 파일을 지정하는 경우 CanSeektrue
.
예외
path
null
.
.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: path
빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.
-또는-
path
NTFS 환경에서 "con:", "com1:", "lpt1:" 등과 같은 파일이 아닌 디바이스를 나타냅니다.
path
비 NTFS 환경에서 "con:", "com1:", "lpt1:"와 같은 비 파일 디바이스를 참조합니다.
mode
FileMode.Truncate
또는 FileMode.Open
path
지정된 파일이 없는 경우와 같이 파일을 찾을 수 없습니다. 파일이 이러한 모드에 이미 있어야 합니다.
호출자에게 필요한 권한이 없습니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).
요청된 access
지정된 path
대해 운영 체제에서 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 또는 디렉터리가 읽기 전용 액세스용으로 설정된 경우).
지정된 경로, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다.
mode
잘못된 값을 포함합니다.
설명
.NET Framework는 디바이스 이름인 경로(예: "\\.\PHYSICALDRIVE0")를 통해 실제 디스크에 대한 직접 액세스를 지원하지 않습니다.
path
매개 변수는 UNC(유니버설 명명 규칙) 공유의 파일을 포함하여 파일 이름이 될 수 있습니다.
생성자에는 파일에 대한 읽기/쓰기 권한이 부여되며 읽기 액세스 공유가 열립니다. 즉, FileStream
이 개체가 닫혀 있지만 읽기 시도가 성공할 때까지 이 프로세스 또는 다른 프로세스에서 쓰기 위해 파일을 열라는 요청이 실패합니다. 버퍼 크기는 기본 크기 4096바이트(4KB)로 설정됩니다.
메모
path
디스크에 저장된 파일일 필요는 없습니다. 스트림을 통한 액세스를 지원하는 시스템의 일부일 수 있습니다. 예를 들어 시스템에 따라 이 클래스는 물리적 디바이스에 액세스할 수 있습니다.
CanSeek 파일을 캡슐화하는 모든 FileStream 개체에 대해 true
.
path
검색을 지원하지 않는 디바이스를 나타내는 경우 결과 FileStreamCanSeek 속성이 false
. 자세한 내용은 CanSeek참조하세요.
FileShare.Read
FileShare
매개 변수가 없는 FileStream 생성자의 기본값입니다.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(IntPtr, FileAccess, Boolean)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
주의
This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. https://go.microsoft.com/fwlink/?linkid=14202
주의
This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.
주의
This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. http://go.microsoft.com/fwlink/?linkid=14202
지정된 읽기/쓰기 권한 및 FileStream
인스턴스 소유권을 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(IntPtr handle, System::IO::FileAccess access, bool ownsHandle);
[System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle);
[System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle);
[System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. http://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle);
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle);
[<System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. https://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) and optionally make a new SafeFileHandle with ownsHandle=false if needed instead.")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed. http://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool -> System.IO.FileStream
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess, ownsHandle As Boolean)
매개 변수
- handle
-
IntPtr
nativeint
현재 FileStream
개체가 캡슐화할 파일에 대한 파일 핸들입니다.
- access
- FileAccess
- ownsHandle
- Boolean
이 FileStream
인스턴스에서 파일 핸들을 소유할지 true
. 그렇지 않으면 false
.
- 특성
예외
access
FileAccess필드가 아닙니다.
호출자에게 필요한 권한이 없습니다.
요청된 access
운영 체제에서 지정된 파일 핸들에 대해 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 핸들이 읽기 전용 액세스로 설정된 경우).
설명
FileStream
개체에는 지정된 파일에 대한 액세스 권한이 부여됩니다. 핸들의 소유권은 지정된 대로 지정됩니다. 이 프로세스가 핸들을 소유하는 경우 Close 메서드에 대한 호출도 핸들을 닫고 파일의 핸들 수가 감소합니다.
FileStream
개체에는 기본 버퍼 크기가 4096바이트입니다.
FileStream
핸들을 단독으로 제어할 수 있다고 가정합니다.
FileStream
핸들을 들고 있는 동안 읽기, 쓰기 또는 검색하면 데이터가 손상될 수 있습니다. 데이터 안전을 위해 핸들을 사용하기 전에 Flush 호출하고 핸들 사용을 완료한 후 Close
이외의 메서드를 호출하지 않습니다.
FileShare.Read
FileShare
매개 변수가 없는 FileStream 생성자의 기본값입니다.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(SafeFileHandle, FileAccess, Int32)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 읽기/쓰기 권한 및 버퍼 크기를 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(Microsoft::Win32::SafeHandles::SafeFileHandle ^ handle, System::IO::FileAccess access, int bufferSize);
public FileStream (Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize);
new System.IO.FileStream : Microsoft.Win32.SafeHandles.SafeFileHandle * System.IO.FileAccess * int -> System.IO.FileStream
Public Sub New (handle As SafeFileHandle, access As FileAccess, bufferSize As Integer)
매개 변수
- handle
- SafeFileHandle
현재 FileStream
개체가 캡슐화할 파일에 대한 파일 핸들입니다.
- access
- FileAccess
FileStream
개체의 CanRead 및 CanWrite 속성을 설정하는 FileAccess 상수입니다.
예외
bufferSize
매개 변수는 음수입니다.
호출자에게 필요한 권한이 없습니다.
요청된 access
운영 체제에서 지정된 파일 핸들에 대해 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 핸들이 읽기 전용 액세스로 설정된 경우).
설명
FileStream
핸들을 단독으로 제어할 수 있다고 가정합니다.
FileStream
핸들을 들고 있는 동안 읽기, 쓰기 또는 검색하면 데이터가 손상될 수 있습니다. 데이터 안전을 위해 핸들을 사용하기 전에 Flush 호출하고 핸들 사용을 완료한 후 Close
이외의 메서드를 호출하지 않습니다. 또는 이 FileStream
생성자를 호출하기 전에 핸들을 읽고 씁니다.
FileShare.Read
FileShare
매개 변수가 없는 FileStream 생성자의 기본값입니다.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(SafeFileHandle, FileAccess, Int32, Boolean)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 읽기/쓰기 권한, 버퍼 크기 및 동기 또는 비동기 상태를 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(Microsoft::Win32::SafeHandles::SafeFileHandle ^ handle, System::IO::FileAccess access, int bufferSize, bool isAsync);
public FileStream (Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync);
new System.IO.FileStream : Microsoft.Win32.SafeHandles.SafeFileHandle * System.IO.FileAccess * int * bool -> System.IO.FileStream
Public Sub New (handle As SafeFileHandle, access As FileAccess, bufferSize As Integer, isAsync As Boolean)
매개 변수
- handle
- SafeFileHandle
이 FileStream
개체가 캡슐화할 파일에 대한 파일 핸들입니다.
- access
- FileAccess
- isAsync
- Boolean
핸들이 비동기적으로 열렸는지(즉, 겹치는 I/O 모드에서) true
. 그렇지 않으면 false
.
예외
bufferSize
매개 변수는 음수입니다.
호출자에게 필요한 권한이 없습니다.
요청된 access
운영 체제에서 지정된 파일 핸들에 대해 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 핸들이 읽기 전용 액세스로 설정된 경우).
설명
isAsync
매개 변수를 true
설정하여 파일 핸들을 비동기적으로 엽니다. 매개 변수가 true
스트림은 겹치는 I/O를 사용하여 파일 작업을 비동기적으로 수행합니다. 그러나 ReadAsync, WriteAsync또는 CopyToAsync 메서드를 호출하기 위해 매개 변수를 true
필요가 없습니다.
isAsync
매개 변수가 false
비동기 읽기 및 쓰기 작업을 호출하는 경우 UI 스레드는 여전히 차단되지 않지만 실제 I/O 작업은 동기적으로 수행됩니다.
FileStream
핸들을 단독으로 제어할 수 있다고 가정합니다.
FileStream
핸들을 들고 있는 동안 읽기, 쓰기 또는 검색하면 데이터가 손상될 수 있습니다. 데이터 안전을 위해 핸들을 사용하기 전에 Flush 호출하고 핸들 사용을 완료한 후 Close
이외의 메서드를 호출하지 않습니다. 또는 이 FileStream
생성자를 호출하기 전에 핸들을 읽고 씁니다.
FileShare.Read
FileShare
매개 변수가 없는 FileStream 생성자의 기본값입니다.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(String, FileStreamOptions)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한, 버퍼 크기, 추가 파일 옵션, 사전 할당 크기 및 다른 FileStreams가 동일한 파일에 대해 가질 수 있는 액세스를 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(System::String ^ path, System::IO::FileStreamOptions ^ options);
public FileStream (string path, System.IO.FileStreamOptions options);
new System.IO.FileStream : string * System.IO.FileStreamOptions -> System.IO.FileStream
Public Sub New (path As String, options As FileStreamOptions)
매개 변수
- path
- String
현재 FileStream 인스턴스가 캡슐화할 파일의 상대 또는 절대 경로입니다.
- options
- FileStreamOptions
사용할 선택적 FileStream 매개 변수를 설명하는 개체입니다.
예외
path
또는 options
null
.
path
빈 문자열이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.
-또는-
path
NTFS 환경에서 파일 이외의 디바이스(예: CON:
, COM1:
또는 LPT1:
)를 참조합니다.
path
비 NTFS 환경에서 CON:
, COM1:
, LPT1:
등과 같은 비 파일 디바이스를 참조합니다.
Mode
FileMode.Truncate
또는 FileMode.Open
path
지정된 파일이 없는 경우와 같이 파일을 찾을 수 없습니다. 파일이 이러한 모드에 이미 있어야 합니다.
path
지정한 파일이 이미 있는 경우 FileMode.CreateNew
지정하는 것과 같은 I/O 오류가 발생했습니다.
-또는-
스트림이 닫혔습니다.
-또는-
디스크가 가득 찼습니다(PreallocationSize 제공되고 path
일반 파일을 가리키는 경우).
-또는-
파일이 너무 큽니다(PreallocationSize 제공되고 path
일반 파일을 가리키는 경우).
호출자에게 필요한 권한이 없습니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).
요청된 Access 지정된 path
대해 운영 체제에서 허용되지 않습니다(예: AccessWrite 또는 ReadWrite 파일 또는 디렉터리가 읽기 전용 액세스용으로 설정된 경우).
-또는-
지정된 경로, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다.
설명
PreallocationSize 값을 지정하면 사전 할당 크기에 대한 힌트를 제공하지만 강력한 보장은 아닙니다. 전체 사용량에 대한 자세한 내용은 PreallocationSize설명서를 참조하세요.
적용 대상
FileStream(String, FileMode)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
지정된 경로 및 생성 모드를 사용하여 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(System::String ^ path, System::IO::FileMode mode);
public FileStream (string path, System.IO.FileMode mode);
new System.IO.FileStream : string * System.IO.FileMode -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode)
매개 변수
- path
- String
현재 FileStream
개체가 캡슐화할 파일의 상대 또는 절대 경로입니다.
- mode
- FileMode
파일을 열거나 만드는 방법을 결정하는 열거형 값 중 하나입니다.
예외
.NET Framework 및 .NET Core 버전이 2.1보다 오래된 경우: path
빈 문자열("")이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.
-또는-
path
NTFS 환경에서 "con:", "com1:", "lpt1:" 등과 같은 파일이 아닌 디바이스를 나타냅니다.
path
비 NTFS 환경에서 "con:", "com1:", "lpt1:"와 같은 비 파일 디바이스를 참조합니다.
path
null
.
호출자에게 필요한 권한이 없습니다.
mode
FileMode.Truncate
또는 FileMode.Open
path
지정된 파일이 없는 경우와 같이 파일을 찾을 수 없습니다. 파일이 이러한 모드에 이미 있어야 합니다.
path
읽기 전용인 파일을 지정합니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).
지정된 경로, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다.
mode
잘못된 값을 포함합니다.
예제
다음 코드 예제에서는 파일에 데이터를 쓰고 바이트 바이트를 기록한 다음 데이터가 올바르게 작성되었는지 확인하는 방법을 보여 있습니다.
using namespace System;
using namespace System::IO;
int main()
{
String^ fileName = "Test@##@.dat";
// Create random data to write to the file.
array<Byte>^dataArray = gcnew array<Byte>(100000);
(gcnew Random)->NextBytes( dataArray );
FileStream^ fileStream = gcnew FileStream( fileName,FileMode::Create );
try
{
// Write the data to the file, byte by byte.
for ( int i = 0; i < dataArray->Length; i++ )
{
fileStream->WriteByte( dataArray[ i ] );
}
// Set the stream position to the beginning of the file.
fileStream->Seek( 0, SeekOrigin::Begin );
// Read and verify the data.
for ( int i = 0; i < fileStream->Length; i++ )
{
if ( dataArray[ i ] != fileStream->ReadByte() )
{
Console::WriteLine( "Error writing data." );
return -1;
}
}
Console::WriteLine( "The data was written to {0} "
"and verified.", fileStream->Name );
}
finally
{
fileStream->Close();
}
}
using System;
using System.IO;
class FStream
{
static void Main()
{
const string fileName = "Test#@@#.dat";
// Create random data to write to the file.
byte[] dataArray = new byte[100000];
new Random().NextBytes(dataArray);
using(FileStream
fileStream = new FileStream(fileName, FileMode.Create))
{
// Write the data to the file, byte by byte.
for(int i = 0; i < dataArray.Length; i++)
{
fileStream.WriteByte(dataArray[i]);
}
// Set the stream position to the beginning of the file.
fileStream.Seek(0, SeekOrigin.Begin);
// Read and verify the data.
for(int i = 0; i < fileStream.Length; i++)
{
if(dataArray[i] != fileStream.ReadByte())
{
Console.WriteLine("Error writing data.");
return;
}
}
Console.WriteLine("The data was written to {0} " +
"and verified.", fileStream.Name);
}
}
}
open System
open System.IO
let fileName = "Test#@@#.dat"
// Create random data to write to the file.
let dataArray = Array.zeroCreate 100000
Random.Shared.NextBytes dataArray
do
use fileStream = new FileStream(fileName, FileMode.Create)
// Write the data to the file, byte by byte.
for i = 0 to dataArray.Length - 1 do
fileStream.WriteByte dataArray[i]
// Set the stream position to the beginning of the file.
fileStream.Seek(0, SeekOrigin.Begin) |> ignore
// Read and verify the data.
for i in 0L .. fileStream.Length - 1L do
if dataArray[int i] <> (fileStream.ReadByte() |> byte) then
printfn "Error writing data."
exit 1
printfn $"The data was written to {fileStream.Name} and verified."
Imports System.IO
Imports System.Text
Class FStream
Shared Sub Main()
Const fileName As String = "Test#@@#.dat"
' Create random data to write to the file.
Dim dataArray(100000) As Byte
Dim randomGenerator As New Random()
randomGenerator.NextBytes(dataArray)
Dim fileStream As FileStream = _
new FileStream(fileName, FileMode.Create)
Try
' Write the data to the file, byte by byte.
For i As Integer = 0 To dataArray.Length - 1
fileStream.WriteByte(dataArray(i))
Next i
' Set the stream position to the beginning of the stream.
fileStream.Seek(0, SeekOrigin.Begin)
' Read and verify the data.
For i As Integer = 0 To _
CType(fileStream.Length, Integer) - 1
If dataArray(i) <> fileStream.ReadByte() Then
Console.WriteLine("Error writing data.")
Return
End If
Next i
Console.WriteLine("The data was written to {0} " & _
"and verified.", fileStream.Name)
Finally
fileStream.Close()
End Try
End Sub
End Class
설명
.NET Framework는 디바이스 이름인 경로(예: "\\.\PHYSICALDRIVE0")를 통해 실제 디스크에 대한 직접 액세스를 지원하지 않습니다.
path
매개 변수는 UNC(유니버설 명명 규칙) 공유의 파일을 포함하여 파일 이름이 될 수 있습니다.
생성자에는 파일에 대한 읽기/쓰기 권한이 부여되며 읽기 액세스 공유가 열립니다. 즉, FileStream
이 개체가 닫혀 있지만 읽기 시도가 성공할 때까지 이 프로세스 또는 다른 프로세스에서 쓰기 위해 파일을 열라는 요청이 실패합니다.
이 생성자를 사용하여 읽기 전용 파일을 열 수 없습니다. 대신 값이 FileAccess.Read
설정된 FileAccess
매개 변수를 허용하는 생성자를 사용해야 합니다.
버퍼 크기는 기본 크기 4096바이트(4KB)로 설정됩니다.
메모
path
디스크에 저장된 파일일 필요는 없습니다. 스트림을 통한 액세스를 지원하는 시스템의 일부일 수 있습니다. 예를 들어 시스템에 따라 이 클래스는 물리적 디바이스에 액세스할 수 있습니다.
CanSeek 파일을 캡슐화하는 모든 FileStream 개체에 대해 true
.
path
검색을 지원하지 않는 디바이스를 나타내는 경우 결과 FileStreamCanSeek 속성이 false
. 자세한 내용은 CanSeek참조하세요.
FileShare.Read
FileShare
매개 변수가 없는 FileStream 생성자의 기본값입니다.
FileAccess 매개 변수가 없는 생성자의 경우 mode
매개 변수가 Append설정되면 Write 기본 액세스입니다. 그렇지 않으면 액세스가 ReadWrite설정됩니다.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- InvalidPathChars
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
FileStream(IntPtr, FileAccess)
- Source:
- FileStream.cs
- Source:
- FileStream.cs
- Source:
- FileStream.cs
주의
This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead. https://go.microsoft.com/fwlink/?linkid=14202
주의
This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) instead.
주의
This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead. http://go.microsoft.com/fwlink/?linkid=14202
지정된 읽기/쓰기 권한을 사용하여 지정된 파일 핸들에 대한 FileStream 클래스의 새 인스턴스를 초기화합니다.
public:
FileStream(IntPtr handle, System::IO::FileAccess access);
[System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access);
[System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) instead.")]
public FileStream (IntPtr handle, System.IO.FileAccess access);
[System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access);
public FileStream (IntPtr handle, System.IO.FileAccess access);
[<System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated. Use FileStream(SafeFileHandle handle, FileAccess access) instead.")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess -> System.IO.FileStream
[<System.Obsolete("This constructor has been deprecated. Please use new FileStream(SafeFileHandle handle, FileAccess access) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
new System.IO.FileStream : nativeint * System.IO.FileAccess -> System.IO.FileStream
new System.IO.FileStream : nativeint * System.IO.FileAccess -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess)
매개 변수
- handle
-
IntPtr
nativeint
현재 FileStream
개체가 캡슐화할 파일에 대한 파일 핸들입니다.
- access
- FileAccess
- 특성
예외
access
FileAccess필드가 아닙니다.
호출자에게 필요한 권한이 없습니다.
요청된 access
운영 체제에서 지정된 파일 핸들에 대해 허용되지 않습니다(예: access
Write
또는 ReadWrite
파일 핸들이 읽기 전용 액세스로 설정된 경우).
설명
Close 호출되면 핸들도 닫히고 파일의 핸들 수가 감소합니다.
FileStream
핸들을 단독으로 제어할 수 있다고 가정합니다.
FileStream
핸들을 들고 있는 동안 읽기, 쓰기 또는 검색하면 데이터가 손상될 수 있습니다. 데이터 안전을 위해 핸들을 사용하기 전에 Flush 호출하고 핸들 사용을 완료한 후 Close
이외의 메서드를 호출하지 않습니다.
주의
특정 문화권 설정을 사용하여 문자 집합을 컴파일하고 다른 문화권 설정으로 동일한 문자를 검색하는 경우 문자를 해석할 수 없으며 예외가 throw될 수 있습니다.
FileShare.Read
FileShare
매개 변수가 없는 FileStream 생성자의 기본값입니다.
일반적인 파일 및 디렉터리 작업 목록은 일반적인 I/O 작업참조하세요.
추가 정보
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
적용 대상
.NET