public HttpResponseMessage SortFiles(string basePath, string selectedItem) { //Do not calculate size of files is we trying to acces whole drive becouse it can get very much time if (CheckPathToCalculateSize(basePath, selectedItem)) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, String.Empty)); } else { try { string path = basePath == null ? selectedItem : Path.Combine(basePath, selectedItem); int smallFiles = helper.GetCountOfFiles(path, size => size <= 10); int mediumFiles = helper.GetCountOfFiles(path, size => size > 10 && size <= 50); int largeFiles = helper.GetCountOfFiles(path, size => size >= 100); FileSizeInfo fzInfo = new FileSizeInfo { SmallFiles = smallFiles, MediumFiles = mediumFiles, LargeFiles = largeFiles }; return(Request.CreateResponse(HttpStatusCode.OK, fzInfo)); } catch (Exception) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Can't calculate size of some files, probably you have no access to some directories or files. ")); } } }
private List <FileSizeInfo> GenerateFileSizeInfo(List <FileInfo> input) { var generatedFileSizes = new List <FileSizeInfo>(); foreach (var file in input) { var size = ByteSize.FromBytes(file.Length); var fileSizeInfo = new FileSizeInfo(); fileSizeInfo.FileName = file.Name; fileSizeInfo.PathToFile = file.FullName; fileSizeInfo.FileSizeInBytes = size.Bytes; fileSizeInfo.FileSizeInKilobytes = size.KiloBytes; fileSizeInfo.FileSizeInMb = size.MegaBytes; fileSizeInfo.FileSizeInGb = size.GigaBytes; fileSizeInfo.FormatedSize = $"{size.LargestWholeNumberDecimalValue} {size.LargestWholeNumberDecimalSymbol}"; generatedFileSizes.Add(fileSizeInfo); } var output = generatedFileSizes.OrderByDescending(x => x.FileSizeInBytes).ToList(); return(output); }
public void SetInputFileName(string fileName) { InputFileName = fileName; InputFileSize = FileSizeInfo.Info(fileName).ShortForm; RecalcInputFileEntropy(); }