private static bool FilterFolderToDelete(IEnumerable <string> filesList) { List <FileHideInfo> filesDeleteList = FileHideInfo.GetFilesList(filesList); var DeleteCandidateList = filesDeleteList.Where(x => x.DeleteFolder == false); if (DeleteCandidateList.Count() > 0)//Found a Video File so we don't want to delete the Folder that returned this filesList { return(false); } return(true);//Nothing that we want to keep found so delete }
public static List <FileHideInfo> GetFilesList(IEnumerable <string> filesList) { List <FileHideInfo> List = new List <FileHideInfo>(); foreach (var item in filesList) { FileHideInfo fi = new FileHideInfo(item); List.Add(fi); } List = CheckRelatedFiles(List); return(List); }
private static List <FileHideInfo> CheckRelatedFiles(List <FileHideInfo> list) { List <FileHideInfo> returnList = new List <FileHideInfo>(); var VideoFiles = list.Where(x => x.FileWithoutExtension != Program.PosterFileName && x.DeleteFile == false).Select(x => x.FileWithoutExtension).ToList();//Check For Video Files for (int i = 0; i < list.Count; i++) { FileHideInfo item = list[i]; item.RelatedMetadataFiles = list.Where(x => x.File != item.File && x.FileWithoutExtension == item.FileWithoutExtension).Select(x => x.File).ToList(); if (item.FileWithoutExtension == Program.PosterFileName || VideoFiles.Contains(item.FileWithoutExtension)) { item.DeleteFile = false;//Set the file To Not be Deleted, Because a related Video File Exsits } if (item.RelatedMetadataFiles.Count == 0) { item.DeleteFile = false; } returnList.Add(item); } return(returnList); }
private static IEnumerable <string> FilterFilesToDelete(IEnumerable <string> filesList) { List <FileHideInfo> filesHideList = FileHideInfo.GetFilesList(filesList); return(filesHideList.Where(x => x.DeleteFile == true).Select(x => x.File)); }