FileOptions Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa opções avançadas para criação de um objeto FileStream.
Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.
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
- Herança
- Atributos
Campos
Asynchronous | 1073741824 | Indica que um arquivo pode ser usado para leitura e gravação assíncronas. |
DeleteOnClose | 67108864 | Indica que um arquivo é excluído automaticamente quando ele não estiver mais em uso. |
Encrypted | 16384 | Indica que um arquivo é criptografado e pode ser descriptografado somente usando a mesma conta de usuário usada para criptografia. |
None | 0 | Indica que nenhuma opção adicional deve ser usada ao criar um objeto FileStream. |
RandomAccess | 268435456 | Indica que o arquivo é acessado aleatoriamente. O sistema pode usar isso como uma dica para otimizar o cache de arquivo. |
SequentialScan | 134217728 | Indica que o arquivo deve ser acessado sequencialmente do começo ao fim. O sistema pode usar isso como uma dica para otimizar o cache de arquivo. Se um aplicativo move o ponteiro do arquivo para acesso aleatório, poderá não ocorrer cache ideal; no entanto, a operação correta ainda é garantida. Especificar esse sinalizador pode aumentar o desempenho em alguns casos. |
WriteThrough | -2147483648 | Indica que o sistema deve gravar por meio de qualquer cache intermediário e ir diretamente para o disco. |
Exemplos
O exemplo a seguir mostra como usar o valor assíncrono ao criar um fluxo de arquivo.
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
Comentários
Especificar o sinalizador pode aumentar o FileOptions.SequentialScan
desempenho para aplicativos que leem arquivos grandes usando acesso sequencial. Os ganhos de desempenho podem ser ainda mais perceptíveis para aplicativos que leem arquivos grandes principalmente sequencialmente, mas ocasionalmente ignoram pequenos intervalos de bytes.