Example #1
0
        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);
        }
Example #2
0
        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())
                    });
                }
            }
        }