Beispiel #1
0
        public async Task <Stream> OpenWriteAsync(FileMode mode = FileMode.Overwrite)
        {
            Directory.CreateDirectory(Path.GetDirectoryName(RealPath));

            Task <Stream> task;

            switch (mode)
            {
            case FileMode.Overwrite:
                task = new Task <Stream>(BackingFile.OpenWrite);
                break;

            case FileMode.Append:
                task = new Task <Stream>(() => BackingFile.Open(System.IO.FileMode.Append, FileAccess.Write));
                break;

            case FileMode.Truncate:
                task = new Task <Stream>(() => BackingFile.Open(System.IO.FileMode.Truncate, FileAccess.Write));
                break;

            default:
                throw new NotImplementedException();
            }
            task.Start();
            return(await task);
        }
Beispiel #2
0
        public async Task <Stream> OpenWriteAsync(FileMode mode = FileMode.Overwrite)
        {
            await EnsureConnectedAsync();

            exists = null;
            await ftpClient.CreateDirectoryAsync(Path);

            await ftpClient.ChangeWorkingDirectoryAsync(Path);

            return(await ftpClient.OpenFileWriteStreamAsync(fileName));
        }
Beispiel #3
0
        public async Task <Stream> OpenWriteAsync(FileMode mode = FileMode.Overwrite)
        {
            switch (mode)
            {
            case FileMode.Overwrite:
            case FileMode.Truncate:
                await DeleteAsync();

                return(await BlobContainer.GetBlockBlobReference(FilePath)
                       .OpenWriteAsync());

            case FileMode.Append:
                return(await BlobContainer.GetAppendBlobReference(FilePath)
                       .OpenWriteAsync(true));

            default:
                throw new NotImplementedException();
            }
        }