FileOptions Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje rozšířené možnosti pro vytvoření objektu FileStream .
Tento výčet podporuje bitové kombinace hodnot jeho členů.
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
- Dědičnost
- Atributy
Pole
Asynchronous | 1073741824 | Označuje, že soubor lze použít pro asynchronní čtení a zápis. |
DeleteOnClose | 67108864 | Označuje, že se soubor automaticky odstraní, když se už nepoužívá. |
Encrypted | 16384 | Označuje, že soubor je zašifrovaný a lze ho dešifrovat pouze pomocí stejného uživatelského účtu, který se používá k šifrování. |
None | 0 | Označuje, že při vytváření objektu FileStream by neměly být použity žádné další možnosti. |
RandomAccess | 268435456 | Označuje, že se k souboru přistupuje náhodně. Systém to může použít jako nápovědu k optimalizaci ukládání souborů do mezipaměti. |
SequentialScan | 134217728 | Označuje, že se k souboru bude přistupovat postupně od začátku do konce. Systém to může použít jako nápovědu k optimalizaci ukládání souborů do mezipaměti. Pokud aplikace přesune soubor ukazatel pro náhodný přístup, optimální ukládání do mezipaměti nemusí dojít; správná operace je však stále zaručena. Zadání tohoto příznaku může v některých případech zvýšit výkon. |
WriteThrough | -2147483648 | Označuje, že systém by měl zapisovat přes zprostředkující mezipaměť a přejít přímo na disk. |
Příklady
Následující příklad ukazuje, jak při vytváření datového proudu souboru použít hodnotu Asynchronní.
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
Poznámky
Zadáním příznaku FileOptions.SequentialScan
můžete zvýšit výkon aplikací, které čtou velké soubory pomocí sekvenčního přístupu. Zvýšení výkonu může být ještě výraznější u aplikací, které čtou velké soubory většinou sekvenčně, ale občas přeskočí malé rozsahy bajtů.