public List <FileProp> GetFileList(FileSearchCriteria fileSearchCriteria) { List <FileProp> fileProps = new List <FileProp>(); if (fileSearchCriteria.isNameSearch && !fileSearchCriteria.isContentSearch) { string[] allFiles = Directory.GetFiles(fileSearchCriteria.folderPath, $"*{fileSearchCriteria.searchKeyWord}*", SearchOption.AllDirectories); GetNameSearchResult(allFiles, fileProps, fileSearchCriteria); } else if (fileSearchCriteria.isNameSearch && fileSearchCriteria.isContentSearch) { string[] allFiles = Directory.GetFiles(fileSearchCriteria.folderPath, "*", SearchOption.AllDirectories); GetNameSearchResult(allFiles, fileProps, fileSearchCriteria); GetContentSearchResult(allFiles, fileProps, fileSearchCriteria); } else if (!fileSearchCriteria.isNameSearch && fileSearchCriteria.isContentSearch) { string[] allFiles = Directory.GetFiles(fileSearchCriteria.folderPath, "*", SearchOption.AllDirectories); GetContentSearchResult(allFiles, fileProps, fileSearchCriteria); } else { // nothing to do } return(fileProps); }
private void GetContentSearchResult(string[] allFiles, List <FileProp> fileProps, FileSearchCriteria fileSearchCriteria) { foreach (string eachFile in allFiles) { if (isFileContainsKeyWord(eachFile, fileSearchCriteria.searchKeyWord)) { FileInfo fileInfo = new FileInfo(eachFile); fileProps.Add(new FileProp() { FullPath = eachFile, Name = GetCleanFileName(eachFile, fileSearchCriteria.folderPath), Size = GetReadableSize(fileInfo.Length), ModifiedDate = fileInfo.LastWriteTime.ToString(GetDefaultDateFormat()) }); } } }