public async Task <ICollection <StorageFolderWrapper> > GetChildFolders(StorageFolderWrapper wrapper) { var subDirs = (await wrapper.GetFoldersAsync()).Select(StorageFolderWrapper.FromFoder).ToList(); if (wrapper.IsLibrary) { subDirs .GroupBy(s => s.Name) .Where(g => g.Count() > 1) .SelectMany(g => g).ToList() .ForEach(d => d.ParentIsLibraryAndHasSameNameSibling = true); } subDirs.ForEach(wrapper.SubFolders.Add); return(subDirs); }
public async Task <StorageFolderWrapper> OpenDirectory(IStorageFolder folder) { if (folder == null) { throw new NullReferenceException("Folder cannot be absent"); } StorageApplicationPermissions.MostRecentlyUsedList.Add(folder); var wrapper = new StorageFolderWrapper(folder, isRoot: true); Directories.Add(wrapper); await GetChildFolders(wrapper); wrapper.HasUnrealizedChildren = false; return(wrapper); }