다음을 통해 공유


FileOptions 열거형

정의

FileStream 개체를 만들기 위한 고급 옵션을 나타냅니다.

이 열거형은 멤버 값의 비트 조합을 지원합니다.

public enum class FileOptions
[System.Flags]
public enum FileOptions
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum FileOptions
[<System.Flags>]
type FileOptions = 
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type FileOptions = 
Public Enum FileOptions
상속
FileOptions
특성

필드

Asynchronous 1073741824

파일을 비동기 읽기 및 쓰기에 사용할 수 있음을 나타냅니다.

DeleteOnClose 67108864

파일이 더 이상 사용되지 않는 경우 자동으로 삭제됨을 나타냅니다.

Encrypted 16384

파일이 암호화되어 있고 암호화할 때 사용한 사용자 계정으로만 해독할 수 있음을 나타냅니다.

None 0

FileStream 개체를 만들 때 추가 옵션을 사용할 수 없음을 나타냅니다.

RandomAccess 268435456

파일이 임의로 액세스됨을 나타냅니다. 시스템에서는 이 필드를 힌트로 사용하여 파일 캐싱을 최적화할 수 있습니다.

SequentialScan 134217728

파일이 처음부터 끝까지 순차적으로 액세스됨을 나타냅니다. 시스템에서는 이 필드를 힌트로 사용하여 파일 캐싱을 최적화할 수 있습니다. 애플리케이션에서 임의 액세스를 위해 파일 포인터를 이동하는 경우 최적 캐싱이 수행되지 않을 수 있지만 올바른 작업은 보장됩니다. 경우에 따라 이 플래그를 지정하면 성능을 향상시킬 수 있습니다.

WriteThrough -2147483648

시스템이 중간 캐시를 통해 쓰고 디스크로 직접 이동해야 함을 나타냅니다.

예제

다음 예제에서는 파일 스트림을 만들 때 비동기 값을 사용하는 방법을 보여줍니다.

using System;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            WriteToFile();
        }

        static async void WriteToFile()
        {
            byte[] bytesToWrite = Encoding.Unicode.GetBytes("example text to write");
            using (FileStream createdFile = File.Create("c:/Temp/testfile.txt", 4096, FileOptions.Asynchronous))
            {
                await createdFile.WriteAsync(bytesToWrite, 0, bytesToWrite.Length);
            }
        }
    }
}
Imports System.IO
Imports System.Text

Module Module1

    Sub Main()
        WriteToFile()
    End Sub

    Async Sub WriteToFile()
        Dim bytesToWrite = Encoding.Unicode.GetBytes("example text to write")
        Using createdFile As FileStream = File.Create("c:/Temp/testfile.txt", 4096, FileOptions.Asynchronous)
            Await createdFile.WriteAsync(bytesToWrite, 0, bytesToWrite.Length)
        End Using
    End Sub

End Module

설명

플래그를 FileOptions.SequentialScan 지정하면 순차적 액세스를 사용하여 대용량 파일을 읽는 애플리케이션의 성능이 향상됩니다. 성능 향상을 훨씬 더 큰 파일을 주로 순차적으로 읽을 하지만 작은 범위의 바이트를 건너뛰는 경우에 따라 애플리케이션에 대 한 눈에 띄는 될 수 있습니다.

적용 대상