FileOptions Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa opções avançadas para criar um FileStream objeto.
Esta enumeração suporta uma combinação bit-a-bit dos respetivos valores 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
| Name | Valor | Description |
|---|---|---|
| WriteThrough | -2147483648 | Indica que o sistema deve escrever através de qualquer cache intermédia e ir diretamente para o disco. |
| None | 0 | Indica que não devem ser usadas opções adicionais ao criar um FileStream objeto. |
| Encrypted | 16384 | Indica que um ficheiro está encriptado e só pode ser desencriptado usando a mesma conta de utilizador usada para encriptação. |
| DeleteOnClose | 67108864 | Indica que um ficheiro é automaticamente eliminado quando deixa de ser utilizado. |
| SequentialScan | 134217728 | Indica que o ficheiro deve ser acedido sequencialmente do início ao fim. O sistema pode usar isto como uma dica para otimizar a cache de ficheiros. Se uma aplicação mover o ponteiro do ficheiro para acesso aleatório, a cache ótima pode não ocorrer; no entanto, o funcionamento correto ainda é garantido. Especificar esta bandeira pode aumentar o desempenho em alguns casos. |
| RandomAccess | 268435456 | Indica que o ficheiro é acedido aleatoriamente. O sistema pode usar isto como uma dica para otimizar a cache de ficheiros. |
| Asynchronous | 1073741824 | Indica que um ficheiro pode ser usado para leitura e escrita assíncronas. |
Exemplos
O exemplo seguinte mostra como usar o valor Assíncrono ao criar um fluxo de ficheiros.
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
Observações
Especificar o FileOptions.SequentialScan flag pode aumentar o desempenho para aplicações que leem ficheiros grandes usando acesso sequencial. Os ganhos de desempenho podem ser ainda mais notórios para aplicações que leem ficheiros grandes maioritariamente sequencialmente, mas ocasionalmente saltam pequenos intervalos de bytes.