Пример #1
0
        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);
        }
Пример #2
0
        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
            }
        }