internal bool FileIsAllowed(string file) { string fileExt = Path.GetExtension(file); if (AllowedFileTypes.Any() && !AllowedFileTypes.Contains(fileExt, StringComparer.OrdinalIgnoreCase)) { return(false); } if (DisallowedFileTypes.Any() && DisallowedFileTypes.Contains(fileExt, StringComparer.OrdinalIgnoreCase)) { return(false); } if (ShouldProcessFile != null) { return(ShouldProcessFile(file)); } return(true); }
public async Task ChangeListedDirectory(IDirectory directory) { if (!directory.Exist) { return; } try { var directories = directory.GetDirectories(); var filesList = new List <KeyValuePair <FileType, string> > { new KeyValuePair <FileType, string>(FileType.Directory, AppSettings.ParentDirectory) }; filesList.AddRange( directories.Select(dir => new KeyValuePair <FileType, string>(FileType.Directory, dir.Name))); var files = (await directory.GetFilesAsync()) .Where(file => AllowedFileTypes.Any(allowedFileType => file.NameWithExtension.EndsWith(allowedFileType))); _currentDirectory = directory; filesList.AddRange(files.Select(file => new KeyValuePair <FileType, string>(FileType.File, file.NameWithExtension))); FilesList.Clear(); foreach (var keyValuePair in filesList) { FilesList.Add(keyValuePair); } } catch (Exception) { // ignored } }