Resource

Resource Basics

Resource Name Sum Total File Size
Resource Version 1.0
Category File System
Downloads 628
Release Date 12/3/2022 3:07:34 PM
 

Resource Details

Description This script will sum the total file size as known to the catalog for every selected thumbnail.
Installation Instructions na
Usage Instructions 1. Select one or more thumbs
2. Right click on a select thumb
3. Select Run Script from Repository -> File System -> Sum Total File Size
Changes in this version na
Special Requirements
 

Author Information

Author Name IDimager Support
 

Available Attachments

Attachment #1 SumFileSize.png
 

Script

    function SizeStyleStrFor(AStyle: TSizeStyle): WideString;
    begin
      case AStyle of
        ssBytes:
          result := 'bytes'
        ssKiloBytes:
          result := 'KB'
        ssMegaBytes:
          result := 'MB'
        ssGigaBytes:
          result := 'GB'
        ssTerraBytes:
          result := 'TB'
        else
          result := '';
      end;

    end;

    function GetSizeString (ASize: Int64; SizeStyle: TSizeStyle; AddStyleIndicator: Boolean): WideString;
    const
      cKilo = 1024;
    var
      ATemp: Extended;
    begin
      result := '';

      if SizeStyle = ssChoose then
      begin
        if ASize > ((cKilo * cKilo * cKilo) * cKilo) then
          SizeStyle := ssTerraBytes
        else if ASize > (1024 * cKilo * cKilo) then
          SizeStyle := ssGigaBytes
        else if ASize > (cKilo * cKilo) then
          SizeStyle := ssMegaBytes
        else if ASize > (cKilo) then
          SizeStyle := ssKiloBytes
        else
          SizeStyle := ssBytes;
      end;

      case SizeStyle of
        ssKiloBytes:
          ATemp := (ASize / cKilo);
        ssMegaBytes:
          ATemp := (ASize / (cKilo * cKilo));
        ssGigaBytes:
          ATemp := (ASize / (cKilo * cKilo * cKilo));
        ssTerraBytes:
          ATemp := (ASize / ((cKilo * cKilo * cKilo) * cKilo));
        else
          ATemp := ASize;
      end;

      result := WideString(FormatFloat ('#,##0.#', ATemp));

      if AddStyleIndicator and (SizeStyleStrFor(SizeStyle) <> '') then
        result := result + ' ' + SizeStyleStrFor(SizeStyle);
    end;


var
  i: Integer;
  AImage: TImageItem;
  ASum: Int64;
begin
  ASum := 0;
  for i := 0 to Selected.Count - 1 do
  begin
    AImage := Selected.Items[i];
    ASum := ASum + AImage.FileSize;
  end;
  Say2(
        IntToStr(Selected.Count) + ' selected files with a total file size of',
        GetSizeString(ASum, ssChoose, True)
      );
end;