public List <FileDescriptionEntity> LoadFiles(PostedDataEntity fileTreeRequest) { // get request body string relDirPath = fileTreeRequest.path; // get file list from storage path try { // get all the files from a directory if (string.IsNullOrEmpty(relDirPath)) { relDirPath = globalConfiguration.GetComparisonConfiguration().GetFilesDirectory(); } else { relDirPath = Path.Combine(globalConfiguration.GetComparisonConfiguration().GetFilesDirectory(), relDirPath); } List <string> allFiles = new List <string>(Directory.GetFiles(relDirPath)); allFiles.AddRange(Directory.GetDirectories(relDirPath)); List <FileDescriptionEntity> fileList = new List <FileDescriptionEntity>(); allFiles.Sort(new FileNameComparator()); allFiles.Sort(new FileTypeComparator()); foreach (string file in allFiles) { System.IO.FileInfo fileInfo = new System.IO.FileInfo(file); // check if current file/folder is hidden if (!(fileInfo.Attributes.HasFlag(FileAttributes.Hidden) || Path.GetFileName(file).StartsWith(".") || Path.GetFileName(file).Equals(Path.GetFileName(globalConfiguration.GetComparisonConfiguration().GetFilesDirectory())) || Path.GetFileName(file).Equals(Path.GetFileName(globalConfiguration.GetComparisonConfiguration().GetResultDirectory())))) { FileDescriptionEntity fileDescription = new FileDescriptionEntity { guid = Path.GetFullPath(file), name = Path.GetFileName(file), // set is directory true/false isDirectory = fileInfo.Attributes.HasFlag(FileAttributes.Directory) }; // set file size if (!fileDescription.isDirectory) { fileDescription.size = fileInfo.Length; } // add object to array list fileList.Add(fileDescription); } } return(fileList); } catch (Exception ex) { throw new FileLoadException("Exception occurred while loading files", ex); } }