Browse Source

add async suffix

pull/10607/head
Emmanuel Hansen 4 years ago
parent
commit
2d2fcf94ac
  1. 33
      src/Android/Avalonia.Android/Platform/Storage/AndroidStorageItem.cs
  2. 4
      src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFolder.cs
  3. 4
      src/Avalonia.Base/Platform/Storage/IStorageFolder.cs

33
src/Android/Avalonia.Android/Platform/Storage/AndroidStorageItem.cs

@ -172,7 +172,7 @@ internal class AndroidStorageFolder : AndroidStorageItem, IStorageBookmarkFolder
{ {
} }
public async Task<IStorageFile?> CreateFile(string name) public async Task<IStorageFile?> CreateFileAsync(string name)
{ {
var mimeType = MimeTypeMap.Singleton?.GetMimeTypeFromExtension(MimeTypeMap.GetFileExtensionFromUrl(name)) ?? "application/octet-stream"; var mimeType = MimeTypeMap.Singleton?.GetMimeTypeFromExtension(MimeTypeMap.GetFileExtensionFromUrl(name)) ?? "application/octet-stream";
var newFile = Document.CreateFile(mimeType, name); var newFile = Document.CreateFile(mimeType, name);
@ -185,7 +185,7 @@ internal class AndroidStorageFolder : AndroidStorageItem, IStorageBookmarkFolder
return new AndroidStorageFile(Activity, newFile.Uri, this); return new AndroidStorageFile(Activity, newFile.Uri, this);
} }
public async Task<IStorageFolder?> CreateFolder(string name) public async Task<IStorageFolder?> CreateFolderAsync(string name)
{ {
var newFolder = Document?.CreateDirectory(name); var newFolder = Document?.CreateDirectory(name);
@ -211,7 +211,7 @@ internal class AndroidStorageFolder : AndroidStorageItem, IStorageBookmarkFolder
async Task DeleteContents(AndroidStorageFolder storageFolder) async Task DeleteContents(AndroidStorageFolder storageFolder)
{ {
foreach (var file in storageFolder.GetItemsAsync()) await foreach (var file in storageFolder.GetItemsAsync())
{ {
if(file is AndroidStorageFolder folder) if(file is AndroidStorageFolder folder)
{ {
@ -288,14 +288,14 @@ internal class AndroidStorageFolder : AndroidStorageItem, IStorageBookmarkFolder
async Task<AndroidStorageFolder?> MoveRecursively(AndroidStorageFolder storageFolder, AndroidStorageFolder destination) async Task<AndroidStorageFolder?> MoveRecursively(AndroidStorageFolder storageFolder, AndroidStorageFolder destination)
{ {
destination = await destination.CreateFolder(storageFolder.Name) as AndroidStorageFolder; destination = await destination.CreateFolderAsync(storageFolder.Name) as AndroidStorageFolder;
if (destination == null) if (destination == null)
{ {
return null; return null;
} }
foreach (var file in storageFolder.GetItemsAsync()) await foreach (var file in storageFolder.GetItemsAsync())
{ {
if (file is AndroidStorageFolder folder) if (file is AndroidStorageFolder folder)
{ {
@ -498,20 +498,27 @@ internal sealed class AndroidStorageFile : AndroidStorageItem, IStorageBookmarkF
} }
} }
async Task<AndroidStorageFile> MoveFileByCopy() async Task<AndroidStorageFile?> MoveFileByCopy()
{ {
var newFile = await storageFolder.CreateFile(Name) as AndroidStorageFile; var newFile = await storageFolder.CreateFileAsync(Name) as AndroidStorageFile;
if (newFile != null) try
{ {
using var input = await OpenReadAsync(); if (newFile != null)
using var output = await newFile.OpenWriteAsync(); {
using var input = await OpenReadAsync();
using var output = await newFile.OpenWriteAsync();
await input.CopyToAsync(output); await input.CopyToAsync(output);
await DeleteAsync(); await DeleteAsync();
return new AndroidStorageFile(Activity, newFile.Uri, storageFolder); return new AndroidStorageFile(Activity, newFile.Uri, storageFolder);
}
}
catch
{
newFile?.DeleteAsync();
} }
return null; return null;

4
src/Avalonia.Base/Platform/Storage/FileIO/BclStorageFolder.cs

@ -113,7 +113,7 @@ internal class BclStorageFolder : IStorageBookmarkFolder
return null; return null;
} }
public async Task<IStorageFile?> CreateFile(string name) public async Task<IStorageFile?> CreateFileAsync(string name)
{ {
var fileName = System.IO.Path.Combine(DirectoryInfo.FullName, name); var fileName = System.IO.Path.Combine(DirectoryInfo.FullName, name);
var newFile = new FileInfo(fileName); var newFile = new FileInfo(fileName);
@ -123,7 +123,7 @@ internal class BclStorageFolder : IStorageBookmarkFolder
return new BclStorageFile(newFile); return new BclStorageFile(newFile);
} }
public async Task<IStorageFolder?> CreateFolder(string name) public async Task<IStorageFolder?> CreateFolderAsync(string name)
{ {
var newFolder = DirectoryInfo.CreateSubdirectory(name); var newFolder = DirectoryInfo.CreateSubdirectory(name);

4
src/Avalonia.Base/Platform/Storage/IStorageFolder.cs

@ -23,12 +23,12 @@ public interface IStorageFolder : IStorageItem
/// </summary> /// </summary>
/// <param name="name">The display name</param> /// <param name="name">The display name</param>
/// <returns>A new <see cref="IStorageFile"/> pointing to the moved file. If not null, the current storage item becomes invalid</returns> /// <returns>A new <see cref="IStorageFile"/> pointing to the moved file. If not null, the current storage item becomes invalid</returns>
Task<IStorageFile?> CreateFile(string name); Task<IStorageFile?> CreateFileAsync(string name);
/// <summary> /// <summary>
/// Creates a folder with specified name as a child of the current storage folder /// Creates a folder with specified name as a child of the current storage folder
/// </summary> /// </summary>
/// <param name="name">The display name</param> /// <param name="name">The display name</param>
/// <returns>A new <see cref="IStorageFolder"/> pointing to the moved file. If not null, the current storage item becomes invalid</returns> /// <returns>A new <see cref="IStorageFolder"/> pointing to the moved file. If not null, the current storage item becomes invalid</returns>
Task<IStorageFolder?> CreateFolder(string name); Task<IStorageFolder?> CreateFolderAsync(string name);
} }

Loading…
Cancel
Save