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