Exemple #1
0
        public async Task <IEnumerable <StorageFile> > GetRemoteFiles(Func <string, bool> filter = null, bool recursive = false)
        {
            if (filter == null)
            {
                filter = item => true;
            }

            var items    = new List <StorageFile>();
            var subItems = (await GetRemoteItems()).ToList();

            if (recursive)
            {
                foreach (var subItem in subItems.Where(subItem => subItem.IsCollection))
                {
                    var subDirectory = new StorageDirectory(RelativePathParts.Merge(subItem.GetName()));
                    items.AddRange(await subDirectory.GetRemoteFiles(filter, true));
                }
            }

            items.AddRange(subItems
                           .Where(item => !item.IsCollection && filter(item.GetName()))
                           .Select(item => new StorageFile(RelativePathParts, item)));

            return(items);
        }
Exemple #2
0
        public IEnumerable <StorageDirectory> GetLocalFolders(Func <string, bool> filter = null)
        {
            if (filter == null)
            {
                filter = item => true;
            }

            var items = new List <StorageDirectory>();

            items.AddRange(Directory.GetDirectories(LocalPath)
                           .Where(directoryPath => filter(Path.GetFileName(directoryPath)))
                           .Select(directoryPath => new StorageDirectory(RelativePathParts.Merge(Path.GetFileName(directoryPath)))));
            return(items);
        }
Exemple #3
0
        public async Task <IEnumerable <StorageDirectory> > GetRemoteFolders(Func <string, bool> filter)
        {
            var items = await GetRemoteItems(item => item.IsCollection);

            return(items
                   .Where(item => filter(item.GetName()))
                   .Select(item =>
            {
                var directory = new StorageDirectory(RelativePathParts.Merge(item.GetName()));
                if (!Directory.Exists(directory.LocalPath))
                {
                    Directory.CreateDirectory(directory.LocalPath);
                }
                return directory;
            })
                   .ToList());
        }
Exemple #4
0
        public IEnumerable <StorageFile> GetLocalFiles(Func <string, bool> filter = null, bool recursive = false)
        {
            if (filter == null)
            {
                filter = item => true;
            }

            var items = new List <StorageFile>();

            if (recursive)
            {
                foreach (var directoryPath in Directory.GetDirectories(LocalPath))
                {
                    var subDirectory = new StorageDirectory(RelativePathParts.Merge(Path.GetFileName(directoryPath)));
                    items.AddRange(subDirectory.GetLocalFiles(filter, true));
                }
            }
            items.AddRange(Directory.GetFiles(LocalPath)
                           .Where(filePath => filter(Path.GetFileName(filePath)))
                           .Select(filePath => new StorageFile(RelativePathParts.Merge(Path.GetFileName(filePath)))));
            return(items);
        }