public static async Task<StorageFolder> CreateFolderStructureAsync(this StorageFolder currentFolder, string path) { foreach (var folder in path.Split('/', '\\').Where(f => string.IsNullOrWhiteSpace(f) == false)) { currentFolder = await currentFolder.CreateFolderAsync(folder, CreationCollisionOption.OpenIfExists); } return currentFolder; }
public static async Task<StorageFolder> GetOrCreateFolderAsync(this StorageFolder folder, string name) { try { return await folder.GetFolderAsync(name); } catch (FileNotFoundException) { return await folder.CreateFolderAsync(name); } }
public static async Task<StorageFolder> TryCreateFolderAsync(this StorageFolder storageFolder, string name, CreationCollisionOption options = CreationCollisionOption.OpenIfExists) { StorageFolder folder = null; try { folder = await storageFolder.CreateFolderAsync(name, options); } catch { } return folder; }
public static async Task<StorageFolder> GetOrCreateFolderAsync(this StorageFolder folder, string folderName) { try { return await folder.CreateFolderAsync(folderName); } catch { } return await folder.GetFolderAsync(folderName); }
/// <summary> /// Gets or creates a single folder from the current folder by using the specified name. /// </summary> /// <param name="folder">The extended <see cref="IFolder">folder</see>.</param> /// <param name="name">The name of the folder to get or create.</param> /// <returns>A <see cref="Task{T}">task</see> containing the retrieved <see cref="IFolder">folder</see>.</returns> public static async Task<IFolder> GetOrCreateFolderAsync( this IFolder folder, string name ) { Arg.NotNull( folder, nameof( folder ) ); Arg.NotNullOrEmpty( name, nameof( name ) ); Contract.Ensures( Contract.Result<Task<IFolder>>() != null ); try { return await folder.GetFolderAsync( name ).ConfigureAwait( false ); } catch ( IOException ) { return await folder.CreateFolderAsync( name ).ConfigureAwait( false ); } }
/// <summary> /// Ensures that a folder with given name exists in given folder /// </summary> /// <param name="folder"></param> /// <param name="name"></param> /// <returns></returns> public static async Task EnsureFolderExistsAsync(this StorageFolder folder, string name) { if (await ContainsFolderAsync(folder, name)) { return; } await folder.CreateFolderAsync(name); }
public static async Task<StorageFolder> EnsureFolderExists(this StorageFolder parent, string folderName) { return await parent.CreateFolderAsync(folderName, CreationCollisionOption.OpenIfExists); }