Beispiel #1
0
        private IEnumerable <VideoFile> GetVideoFileList(
            IFolderSettings folderSettings)
        {
            operationStartTime = DateTime.Now;
            OnOperationUpdate(OperationType.Searching, ProgressStyle.Marquee);

            // Get all video files in source path.
            var foundFiles = GetAllAccessibleFilesIn(
                folderSettings.BasePath,
                folderSettings.ExcludedDirectories,
                folderSettings.Recursive)
                             .Where(f => folderSettings.FileExtensions.Contains(
                                        Path.GetExtension(f),
                                        StringComparer.InvariantCultureIgnoreCase))
                             .Select(f => new VideoFile(f))
                             .ToList();

            if (CurrentState.VideoFiles == null)
            {
                return(foundFiles);
            }

            foreach (var file in foundFiles.Except(CurrentState.VideoFiles))
            {
                NewFiles.TryAdd(file, 0);
            }

            foreach (var file in CurrentState.VideoFiles.Except(foundFiles))
            {
                DeletedFiles.TryAdd(file, 0);
            }

            return(CurrentState.VideoFiles);
        }
Beispiel #2
0
        private bool IsFilePathRelevant(string filePath, IFolderSettings settings)
        {
            if (!filePath.StartsWith(settings.BasePath))
            {
                OnLogged($"File not in source folder: {filePath}");
                return(false);
            }

            foreach (var excludedPath in settings.ExcludedDirectories)
            {
                if (filePath.StartsWith(excludedPath))
                {
                    OnLogged($"File is in excluded directory: {filePath}");
                    return(false);
                }
            }

            var extension = Path.GetExtension(filePath);

            if (!settings.FileExtensions.Contains(extension))
            {
                OnLogged($"File doesn't have proper file extension: {filePath}");
                return(false);
            }

            return(true);
        }