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 может повысить производительность приложений, которые считывают большие файлы с помощью последовательного доступа. Повышение производительности может быть еще более заметным для приложений, которые считывают большие файлы в основном последовательно, но иногда пропускают небольшие диапазоны байтов.

Применяется к