diff options
Diffstat (limited to 'MediaBrowser.Model/IO/AsyncFile.cs')
| -rw-r--r-- | MediaBrowser.Model/IO/AsyncFile.cs | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/MediaBrowser.Model/IO/AsyncFile.cs b/MediaBrowser.Model/IO/AsyncFile.cs index b888a4163..3c8007d1c 100644 --- a/MediaBrowser.Model/IO/AsyncFile.cs +++ b/MediaBrowser.Model/IO/AsyncFile.cs @@ -1,4 +1,3 @@ -using System; using System.IO; namespace MediaBrowser.Model.IO @@ -9,11 +8,23 @@ namespace MediaBrowser.Model.IO public static class AsyncFile { /// <summary> - /// Gets a value indicating whether we should use async IO on this platform. - /// <see href="https://github.com/dotnet/runtime/issues/16354" />. + /// Gets the default <see cref="FileStreamOptions"/> for reading files async. /// </summary> - /// <returns>Returns <c>false</c> on Windows; otherwise <c>true</c>.</returns> - public static bool UseAsyncIO => !OperatingSystem.IsWindows(); + public static FileStreamOptions ReadOptions => new FileStreamOptions() + { + Options = FileOptions.Asynchronous + }; + + /// <summary> + /// Gets the default <see cref="FileStreamOptions"/> for writing files async. + /// </summary> + public static FileStreamOptions WriteOptions => new FileStreamOptions() + { + Mode = FileMode.OpenOrCreate, + Access = FileAccess.Write, + Share = FileShare.None, + Options = FileOptions.Asynchronous + }; /// <summary> /// Opens an existing file for reading. @@ -21,7 +32,7 @@ namespace MediaBrowser.Model.IO /// <param name="path">The file to be opened for reading.</param> /// <returns>A read-only <see cref="FileStream" /> on the specified path.</returns> public static FileStream OpenRead(string path) - => new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, IODefaults.FileStreamBufferSize, UseAsyncIO); + => new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, IODefaults.FileStreamBufferSize, FileOptions.Asynchronous); /// <summary> /// Opens an existing file for writing. @@ -29,6 +40,6 @@ namespace MediaBrowser.Model.IO /// <param name="path">The file to be opened for writing.</param> /// <returns>An unshared <see cref="FileStream" /> object on the specified path with Write access.</returns> public static FileStream OpenWrite(string path) - => new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None, IODefaults.FileStreamBufferSize, UseAsyncIO); + => new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None, IODefaults.FileStreamBufferSize, FileOptions.Asynchronous); } } |
