Пример #1
0
        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();
        }