コード例 #1
0
        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. "));
                }
            }
        }
コード例 #2
0
ファイル: FileService.cs プロジェクト: egisbah/SizeTree
        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);
        }
コード例 #3
0
 public void SetInputFileName(string fileName)
 {
     InputFileName = fileName;
     InputFileSize = FileSizeInfo.Info(fileName).ShortForm;
     RecalcInputFileEntropy();
 }