public async Task<Stream> OpenAsync(FileAccessOption accessOption, CancellationToken cancellationToken) { await AwaitExtensions.SwitchOffMainThreadAsync(cancellationToken); switch (accessOption) { case FileAccessOption.ReadOnly: { // Make sure the source file exists EnsureExists(); return File.OpenRead(Path); } case FileAccessOption.ReadWrite: return File.Open(Path, FileMode.OpenOrCreate, FileAccess.ReadWrite); default: throw new ArgumentOutOfRangeException("accessOption", accessOption, null); } }
public async Task<Stream> OpenAsync(FileAccessOption accessOption, CancellationToken cancellationToken = new CancellationToken()) { FileAccessMode fileAccessMode; switch (accessOption) { case FileAccessOption.ReadOnly: fileAccessMode = FileAccessMode.Read; break; case FileAccessOption.ReadWrite: fileAccessMode = FileAccessMode.ReadWrite; break; default: throw new ArgumentOutOfRangeException(nameof(accessOption), accessOption, null); } var wrtStream = await _storageFile.OpenAsync(fileAccessMode) .AsTask(cancellationToken) .ConfigureAwait(false); return wrtStream.AsStream(); }