Exemple #1
0
 private static IEnumerable <IGrouping <string, FileItem> > CreateGrouping_FileExtensions(FolderItem rootFolder)
 {
     return
         //From root folder ...
         (rootFolder
          //Select all descendant files ...
          .DescendantFiles()
          //Then order the files by file path ...
          .OrderBy(item => item.ItemPath)
          //Then group files by extension
          .GroupBy(item => item.ItemExtension.ToLower())
          //Then order the groups by thier keys
          .OrderBy(item => item.Key));
 }
Exemple #2
0
 private static IEnumerable <IGrouping <string, FileItem> > CreateGrouping_DuplicateFileSizesPlusNames(FolderItem rootFolder)
 {
     return
         //From root folder ...
         (rootFolder
          //Select all descendant files ..
          .DescendantFiles()
          //Then order the files by file path ...
          .OrderBy(item => item.ItemPath)
          //Then group the items by a string containing the (size + name) of files
          .GroupBy(item => item.FileSize().ToString("X8") + "-" + item.ItemName.ToLower())
          //Only select groups having more then one file
          .Where(item => item.Count() > 1)
          //Then order the groups by thier keys
          .OrderBy(item => item.Key));
 }
Exemple #3
0
        private static IEnumerable <IGrouping <string, FileItem> > CreateGrouping_AllEnglishKeywords(FolderItem rootFolder)
        {
            var englishWordsList = LoadEnglishWordsList();

            return
                //From root folder ...
                (rootFolder
                 //Select all descendant files ...
                 .DescendantFiles()
                 //Only select files having all keywords as english keywords in their names
                 .Where(item => item.ItemNameHasAllKeywordsFrom(englishWordsList))
                 //Then order the files by file path ...
                 .OrderBy(item => item.ItemPath)
                 //And put all files in a single group
                 .GroupBy(item => "All files with all english keywords"));
        }
Exemple #4
0
 private static IEnumerable <IGrouping <string, FileItem> > CreateGrouping_DuplicateFiles(FolderItem rootFolder)
 {
     return
         //From root folder ...
         (rootFolder
          //Select all descendant files ...
          .DescendantFiles()
          //Then group them by size ...
          .GroupBy(item => item.FileSize())
          //Then select the groups having more than one file
          .Where(item => item.Count() > 1)
          //Then flatten the groups into a list of files
          .SelectMany(item => item)
          //Then order the files by path
          .OrderBy(item => item.ItemPath)
          //Then group the files by (size + data hash)
          .GroupBy(item => item.FileSize().ToString() + "-" + item.Md5DataHash())
          //Then select the groups having more than one file
          .Where(item => item.Count() > 1)
          //Then order groups by (size + data hash) key
          .OrderBy(item => item.Key));
 }