FileOptions FileOptions FileOptions FileOptions Enum


Represents advanced options for creating a FileStream object.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

public enum class FileOptions
public enum FileOptions
type FileOptions = 
Public Enum FileOptions
FlagsAttribute ComVisibleAttribute SerializableAttribute


Asynchronous Asynchronous Asynchronous Asynchronous 1073741824

Indicates that a file can be used for asynchronous reading and writing.

DeleteOnClose DeleteOnClose DeleteOnClose DeleteOnClose 67108864

Indicates that a file is automatically deleted when it is no longer in use.

Encrypted Encrypted Encrypted Encrypted 16384

Indicates that a file is encrypted and can be decrypted only by using the same user account used for encryption.

None None None None 0

Indicates that no additional options should be used when creating a FileStream object.

RandomAccess RandomAccess RandomAccess RandomAccess 268435456

Indicates that the file is accessed randomly. The system can use this as a hint to optimize file caching.

SequentialScan SequentialScan SequentialScan SequentialScan 134217728

Indicates that the file is to be accessed sequentially from beginning to end. The system can use this as a hint to optimize file caching. If an application moves the file pointer for random access, optimum caching may not occur; however, correct operation is still guaranteed.

WriteThrough WriteThrough WriteThrough WriteThrough -2147483648

Indicates that the system should write through any intermediate cache and go directly to disk.


The following example shows how to use the Asynchronous value when creating a file stream.

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

namespace ConsoleApplication
    class Program
        static void Main(string[] args)

        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()
    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

Applies to