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
- Наследование
- Атрибуты
Поля
| Имя | Значение | Описание |
|---|---|---|
| WriteThrough | -2147483648 | Указывает, что система должна записывать данные через любой промежуточный кэш и перейти непосредственно на диск. |
| None | 0 | Указывает, что при создании FileStream объекта не следует использовать дополнительные параметры. |
| Encrypted | 16384 | Указывает, что файл зашифрован и может быть расшифрован только с помощью той же учетной записи пользователя, используемой для шифрования. |
| DeleteOnClose | 67108864 | Указывает, что файл автоматически удаляется, когда он больше не используется. |
| SequentialScan | 134217728 | Указывает, что доступ к файлу осуществляется последовательно с начала до конца. Система может использовать это в качестве указания для оптимизации кэширования файлов. Если приложение перемещает указатель файла для случайного доступа, оптимальное кэширование может не произойти; однако правильная операция по-прежнему гарантируется. Указание этого флага может повысить производительность в некоторых случаях. |
| RandomAccess | 268435456 | Указывает, что доступ к файлу осуществляется случайным образом. Система может использовать это в качестве указания для оптимизации кэширования файлов. |
| Asynchronous | 1073741824 | Указывает, что файл можно использовать для асинхронного чтения и записи. |
Примеры
В следующем примере показано, как использовать асинхронное значение при создании потока файлов.
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 может повысить производительность приложений, которые считывают большие файлы с помощью последовательного доступа. Повышение производительности может быть еще более заметным для приложений, которые считывают большие файлы в основном последовательно, но иногда пропускают небольшие диапазоны байтов.