DirSizeCalc
Version 2.22
DirSizeCalc is a content plug-in for the file manager Total
        Commander. It provides several numeric calculation for directory
        contents. The calculations can be started automatically while
        entering a directory or explicitly by the user.
Contents
- Field descriptions
 - System requirements
 - Use
- Use cases 
- Display
directory and file sizes automatically - Delete
empty directory trees - Find
out if compression makes sense - Find out how many
directory are contained in a directory - Find
out if a directory contains subdirectories - Load the
directory size for all selected or all fields by
pressing a keystroke 
 - Display
 - Additional information
for displayed values - Size display for
(almost) empty directories - Placeholders
 
 - Use cases 
 - Settings
- Field settings 
- Name
 - Field
selection - Loading
behavior - Reparse
point behavior - Recursive
 - Cache values
 - Calculation limit
 
 - Unit settings 
 - Change settings file
location 
 - Field settings 
 - Frequently asked questions
 - Author contact
 - License
 
1. Field descriptions
| Size | File- or directory size | 
| Compressed Size | File- or directory size with set compressed attribute.  | 
| Compression Ratio | Calculates the ratio between Size and Compressed Size. | 
| Subdirectory Count | Count of all subdirectories in a directory | 
| File Count | Count of all files in a directory. | 
| Empty | Finds out if a directory is empty | 
| Contains Files | Finds out of a directory contains files. | 
| Contains subdirectories | Finds out of a directory contains subdirectories. | 
2. System requirements
Total Commander 6.50 is required for this plug-in. Total
        Commander 7.03 is recommended for this plug-in. 
3. Use
Before DirSizeCalc's fields can be used they must be added to
        the part of Total Commander where they are intended to be used.
        Basically all content plug-ins can be used in the same way. The
        following program parts of Total Commander support content
        plug-ins. 
- Custom columns views
 - Tooltips
 - Thumbnal view
 - Find files
 - Colors by file type
 - Overwrite dialog
 - Multi rename tool
 
3.1 Use cases
3.1.1. Display size of files and directories automatically name="use_cases_automatic_calculation">
Custom columns view
Total Commander provides to calculate the size of directories
        by executing the command cm_CountDirContent (Hotkey
        Shift+Alt+Enter). An automatic calculation each time a directory
        is entered isn't possible though. By using the field "Size" the
        directory sizes are displayed as fast as possible. In the
        following explains step by step who this can be setup.
- Open the configuration dialog by clicking
Configuration/Options in the main menu. - Navigate to the page "Custom columns".
 - Click the "New" button to create a new custom columns view.
 -  You can setup the number of columns and its contents n this
dialog. Click the "Add column" button. A new row with
properties is displayed. This row represents the new column's
attributes. - The next step is to define the new column's contents. Click
the + button to assign a field to the column. Select
dirsizecalc/Size/<default> in the menu. The property
"Field contents" now displays [dirsizecalc.Size]. You can
select another unit instead of <default>. Fore more
details on this see the "Units" chapter. The property "Title"
displays the text which will be displayed in the column
header. The title can be changed at will. - Click OK to close the dialog "Custom columns".
 - Click OK to close the configuration dialog.
 
3.1.2. Delete empty directory trees name="use_cases_delete_empty_folder_trees">
Find files
A large amount of directories containing no files may make it
        difficult to maintain orientation in the file system. It's a
        good idea to clean up from time to time. Values provided by
        content plug-ins such as DirSizeCalc can be used to narrow down
        the number of found files. So the find files function of Total
        Commander is used together with with the DirSizeCalc plug-in to
        find directories containing no files. 
- Click "Search" in the Commands menu.
 - Navigate to the "Plugins" tab.
 - In this tab rules can be defined. For each file and
directory in the search scope the defined rules will be
checked. Only if the rule applies the file or directory will
be added to the list of found files. In this case the rule is
Plugin: dirsizecalc, Field: Contains Files, Operator: = and
Value: No. In Furthermore the short form is used. In this case
this would be dirsizecalc.Contains Files=No. The rule ensures
that only directories will be found that contain no files. If
a directory contains files or a problem occurred during
retrieving the contents the directory won't be found during
the search. - Click on the button "Start search". Wait until the search
has finished. - Click on the "Feed to Listbox" button to display the search
results in a Total Commander file list panel. - Select all directories listed in the search results panel.
 - Apply the delete operation to the selected files. During the
process a prompt might be displayed informing you that a
directory isn't empty. The statement is true but this is just
a directory containing other empty directories. The prompt can
be answered by clicking on the "All" button. 
Alternatively the rule dirsizecalc.Empty=Yes can be used. In
        this case the directories will be deleted without warnings as
        they don't even contain empty subdirectories. The disadvantage
        is that after deleting new empty subdirectories emerge until no
        empty directories are found.
It's a good idea to search the search parameters to be able to
        repeat the search later. 
3.1.3. Find out if compression makes sense name="use_cases_check_if_comression_makes_sense">
Custom columns view
Find files
The Windows file system NTFS allows you to set the "compressed"
        attribute to each file. The file is compressed but in contrast
        to archives you can continue working as if the file were
        uncompressed. Why are not all files compressed automatically?
        Reading and writing of compressed files takes longer compared to
        uncompressed files. For this reason only files should be
        compressed where write operation are performed infrequently.
        Many files are archives or files with a high information
        content. The cannot be further compressed by using NTFS
        compression. This is where "Compressed Size" and "Compression
        Rate" come into play. They can be setup the same way as
        described in the use case "Display size of files and directories
        automatically" but an additional column "Compressed Size" has to
        be added. Alternatively you can search for files which couldn't
        be compressed very good. The search is setup in the same way as
        described in "Delete empty directory trees" but the rule defined
        in the "Plugins" tab differs. It could be for example some like
        this:
- tc.Compressed = yes
 - tc.Directory = no
 - dirsizecalc.Compressed Size > 80
 
3.1.4. Find out how many files are contained in a directory name="use_cases_files_count">
Thumbnail view
- Open the configuration dialog by clicking
Configuration/Options in the main menu. - Navigate to the page "Thumbnail view".
 - Make sure "Show custom fields below thumbnails" is checked.
 - Enter "Size: " (without quotes) in the fields below.
 - Click on the "Add" button right to the edit field.
 - Select "dirsizecalc/File Count" in the menu.
 - Click OK to close the configuration dialog.
 
3.1.5. Find out if a directory contains subdirectories name="use_cases_contains_subdirectories">
Tooltip
- Open the configuration dialog by clicking
Configuration/Options in the main menu. - Navigate to the page "Display".
 - Make sure that the options " Show filename in file list as
tooltip if truncated" and are activated. - Make sure the options "Show file name in file list as
tooltip if truncated " and "Win32-style tips with file
comments"are activated. - Click on the "+" button to create a user-defined tooltip.
 - The dialog "User-defined fields by file type" is displayed.
Click on the "Add" button to create a new file type. - The dialog "Enter file type" is displayed. Enter *.* to
include all directories. - Click OK to close the dialog "Enter file type".
 - Now a dialog is displayed which is also labeled
"User-defined fields by filetype". First enter "Contains
subdirectories: " (without quotes). - Clock on the the + button.
 - Select dirsizecalc/Contains subdirectories. In the text
fields the following text should be displayed: "Contains
subdirectories: [=dirsizecalc.Contains Subdirectories]"
(without quotes). - Click OK to close the dialog "User-defined fields by file
type". - Click OK to close the dialog "User-defined fields by file
type". - Click OK to close the configuration dialog.
 
The described approach can be used in a slightly modified way
        to color directories containing subdirectories using the "Colors
        by file type" function. In this case Total Commander uses
        DirSizeCalc to process the operation in foreground. For this
        reason Total Commander until the operation is completed. 
3.1.6. Load the directory size for all selected or all fields
        by pressing a keystroke
Many users don't want that all sizes are calculated
        automatically. They rather want to know the sizes of all
        selected or of all displayed directories. Total Commander makes
        it possible. Here is an example how this can be achieved by
        pressing a keystroke.
- Start the included setting tool (DirSizeCalcSetting.exe).
 - Select the "Load on demand" option for the already selected
field "Size" in the dialog "Edit field settings". - Click OK.
 - Restart Total Commander.
 - Create a new custom column view as described in chapter
3.1.1 . - Open the configuration dialog by clicking
Configuration/Options in the main menu. - Select the page "Misc.".
 - Select the desired hotkey (e.g. Alt+Shift+Enter).
 - Click on the button with the magnifier.
 - Select the "Custom column view" category in the displayed
"Choose command" dialog. - Select cm_LoadSelOnDemandFields, to calculate the size of
all selected directories or cm_LoadAllOnDemandFields to
calculate the size of all directories. - Click OK to apply the selected command.
 - Click on the button with the checkmark to apply the chosen
command. - Click OK to close the configuration dialog .
 - Now select the directories to calculate.
 - Press the chosen hotkey .
 
Once configured you just have to set the created custom column
        view and the steps 15 and 16. Although the new commands can be
        found in the "Custom column view" category they also work great
        in thumbnail view. 
3.2 Additional values for displayed values name="additional_information">
DirSizeCalc shows some tokens in front of the calculation
        result, if the complete directory content couldn't be retrieved.
        This can be the case for several reasons: 
- AD = Access denied. This error is displayed if the current
user has no sufficient access permissions for opening the
directory. - U = Unreadable Unicode name. This error occurs if file name
contains characters which don't match the currently set
Windows code page and you have deactivated storing of short
file names. - E = Unknown error. Unknown error should not be displayed at
all. When it's displayed please report it to me. - NF = Not followed reparse point. The user has set the option
to now follow reparse points which results in not including
these these files in the calculation. 
3.3. Size display of (almost) empty directories name="empty_directory_display">
There can be multiple reasons for a directory size of 0 bytes.
        So far the fields "Leer" and "Contains Files" had to be used to
        distinguish them but now this information is displayed directly
        in the "Size" field. The following cases are distinguished: 
- The directory contains only files of size 0. In this case
DirSizeCalc displays 0 as size. - The directory contains only empty subdirectories but no
files. In this case "No files" is being displayed. - The directory is really empty In this case "Empty is being
displayed. 
3.4 Placeholders
Calculation of directory can take a long time. For this reason
        DirSizeCalc displays "Dir." until the actual value has been
        calculated. If DirSizeCalc detects that the directory is
        actually a reparse point "Junc. Pt." is displayed for junction
        points and "Mnt. Pt." is displayed for mount points. 
4. Settings
The bundled settings tool (DirSizeCalcSettings.exe) can be used
        to personalize DirSizeCalc. Closing the setting tool will save
        the settings but Total Commander has to be restarted to apply
        the changed settings.
4.1. Field settings
Field settings can be used to personalize the field's behavior.
        Initially just predefined fields are available on the "Fields"
        tab. By clicking on "Add" you can add you own fields. This can
        be helpful if you want to use a certain field with different
        behaviors. By clicking "Delete" custom fields can be deleted.
A single click in the list will open a dialog which includes
        all settings available for the selected field. Please note that
        not all settings are available to all fields.
4.1.1 Name
This is the field's name for all built-in fields. For custom
        fields a name set by the user.
4.1.2. Field selection name="field_settings_field_selection">
Here you can pick one of DirSizeCalc's fields .
4.1.3. Loading behavior name="field_settings_loading_behavior">
This setting only applies to fields used in custom column views
        and in thumbnail view. By default the values are calculated
        automatically when opening a directory (setting automatically).
        If you change this to "on demand" here than you will have to
        press the space key to load the values of all configured fields
        for the directory under the cursor.
4.1.4. Reparse point behavior name="field_settings_reparse_point_behavior">
Reparse points look like normal directories but they point to a
        disk volume (mount points) or another directory (junction
        points). By default DirSizeCalc treats reparse points just like
        normal directories which means the target's directory contents
        is calculated. This may lead to wrong assumptions on the
        directory's size and take a long time. 
DirSizeCalc provides separated options for mount- and junction
        points. By unchecking "Follow mount points" respectively "Follow
        junction points" calculation can be completely deactivated. In
        addition the option "but not in subdirectories" can be used to
        treat reparse points like directories in the visible directory
        level but don't calculate values for reparse points in
        subdirectories.
4.1.5. Recursive
By default a directory is processed recursively. This means the
        complete directory including all subdirectories and the
        directory content of this subdirectories and so on is considered
        in the calculation. By disabling "Recursive" only the directory
        content is considered.
4.1.6. Cache values
DirSizeCalc stores the retrieved values in a cache to speed up
        displaying directory sizes. The cache's disadvantage is that the
        displayed values are not always up to date. If you want to get
        the actual directory sizes you can force a reload by executing
        "Reread source" from the View menu (hotkey: Ctrl+R).
4.1.7. Calculation limit
If you just need approximate values and calculation time is
        critical you enable a calculation limit. Here you can enter the
        number of files which should be retrieved for a directory. 
When the limit has been reached the calculation the calculation
        will be aborted and ">=" will by displayed in front of the
        value. This indicates the the actual value might by much bigger.
4.2. Unit settings
The built-in units differ in unit and prefix. Unit defines if
        and how the size in bytes is converted to another unit. Prefix
        defines the base on which the calculation is performed.
The so called binary prefixes are based on power of two. The
        size dimensions are 2^10 =1.024 (= 1 KiB), 2^20 = 1.048.576 (= 1
        MiB) and 2^30= 1.073.741.824 (=1 GiB).
The SI prefixes are based on power of ten. The size dimensions
        differ by a factor of 1000. 1.000 bytes (= 1 kB), 1.000.000 (1
        MB) and 1.000.000.000 (= 1 GB).
Many programs - such as Total Commander - calculate based on
        power of two but use SI prefixes. This presentation is wrong and
        isn't used by Total Commander for this reason.
Below you'll find a table containing example conversions.
        Please note that actual presentation depends on the chosen
        formatting options. 
bytes  | KiB  | MiB  | GiB  | kB  | MB  | GB  | 
|---|---|---|---|---|---|---|
| height="17">0 | align="RIGHT">0,0 | align="RIGHT">0,0 | align="RIGHT">0,0 | align="RIGHT">0,0 | align="RIGHT">0,0 | align="RIGHT">0,0 | 
| height="17">587 | align="RIGHT">0,6 | align="RIGHT">0,0 | align="RIGHT">0,0 | 0,6 | 0,0 | 0,0 | 
| height="17">1.000 | 1,0 | align="RIGHT">0,0 | align="RIGHT">0,0 | 1,0 | 0,0 | 0,0 | 
| height="17">1.024 | 1,0 | align="RIGHT">0,0 | align="RIGHT">0,0 | 1,0 | 0,0 | 0,0 | 
| height="17">81.981 | align="RIGHT">80,1 | align="RIGHT">0,1 | align="RIGHT">0,0 | 82,0 | 0,1 | 0,0 | 
| height="17">101.654 | align="RIGHT">99,3 | align="RIGHT">0,1 | align="RIGHT">0,0 | 101,7 | 0,1 | 0,0 | 
| height="17">1.000.000 | 976,6 | align="RIGHT">1,0 | align="RIGHT">0,0 | 1.000,0 | 1,0 | 0,0 | 
| height="17">1.048.576 | 1.024,0 | 1,0 | align="RIGHT">0,0 | 1.048,6 | 1,0 | 0,0 | 
| height="17">5.400.000 | 5.273,4 | align="RIGHT">5,1 | align="RIGHT">0,0 | 5.400,0 | 5,4 | 0,0 | 
| height="17">70.000.000 | 68.359,4 | align="RIGHT">66,8 | align="RIGHT">0,1 | 70.000,0 | 70,0 | 0,1 | 
| height="17">1.000.000.000 | 976.562,5 | align="RIGHT">953,7 | align="RIGHT">0,9 | 1.000.000,0 | 1.000,0 | 1,0 | 
| height="17">1.073.741.824 | 1.048.576,0 | 1.024,0 | 1,0 | 1.073.741,8 | 1.073,7 | 1,1 | 
| height="17">6.250.000.000 | 6.103.515,6 | align="RIGHT">5.960,5 | align="RIGHT">5,8 | 6.250.000,0 | 6.250,0 | 6,3 | 
4.2.1. Name
For built-in units this is the default unit abbreviation. For
        custom units this is a name defined by the user.
4.2.2. Prefixes and units name="unit_settings_prefixes_units">
DirSizeCalc allows the user to define which unit is used for a
        certain range of file- and directory sizes. By default bytes is
        used. First check all other units which you want to use. Than
        enter the minimum value in bytes where this unit should be used.
      
If you want to use KiB as the smallest unit you have to enter 0
        in the KiB size field.
4.2.3. Formatting
There are a bunch of options to customize the formatting of
        file- and directory sizes. This includes the number of digits,
        decimal- and thousand separators and some more.
4.2.4. Preview
This preview displays how directory sizes will be displayed
        later in Total Commander.
4.3 Change the settings location name="settings_file_location">
By default DirSizeCalc stores its settings in the same
        directory where Wincmd.ini - Total Commander's main settings
        file - is located. In this dialog you can choose between several
        locations.
- Same directory as "Wincmd.ini"
 - Directory "DirSizeCalc" in "Wincmd.ini" directory.
 - Plug-in directory
 - Total Commander root directory
 
To choose a new location please select the desired location
        from the combo box. 
In addition the current path and if this path is writable is
        displayed. 
5. Frequently asked questions
Can I use DirSizeCalc to calculate values for all
          selected or all directories?
Yes this is possible starting from Total Commander 7.50. There
        is a use case
        which describes how it works. 
I changed to a directory containing many files.
          Previously I sorted by a column which contained a DirSizeCalc
          field. Total Commander seems to hang. Is there anything I can
          do? 
Total Commander waits for the calculation to finish and blocks
        program's use. Trying to abort the calculation (e.g. by hitting
        Escape) is not handled by Total Commander and for this reason
        not forwarded to the plug-in. I asked the author of Total
        Commander to add adda way to abort the calculation as soon as
        possible. 
In the meantime you can use "Calculation limit" option which
        only calculates a fraction of the directory contents and
        therefore shortens the waiting time.
Instead of displaying the size of directories in
          archives just 0 is displayed. Why it doesn't work?
In this case DirSizeCalc would have to get the values from
        Total Commander. Unfortunately this isn't possible in the
        current Total Commander version. I asked the author of Total
        Commander to add this feature as soon as possible.
In earlier versions there have been fields called "in
          background" and "on demand". Where have they gone?
The default setting is now "in background". If you want to load
        the values "on demand" you are free to do so. Please start the
        bundled configuration utility (DirSizeCalcSettings.exe). This
        tool allows you to set "on demand" loading for each single field
        or you can even create your own custom field with loading
        behavior set to "on demand". The reasons for changing the field
        names have been reducing the field count and shortening of field
        names. If you added custom columns you had to change the title
        manually resulted in losing the information anyway. 
6. Contact
There is a           href="http://www.ghisler.ch/board/viewtopic.php?t=18021">thread
        in the Total Commander forum
        which can be used to discuss problems, bug and suggestions.
7. License and liability
 Any liability for damage of any sort is hereby denied.
        All rights reserved. This Total Commander plug-in is copyrighted
        free ware.