SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

A collection of especially useful xplorer² topics and ideas. New users may find it helpful to look here before searching the other forums for information. >>>>>> Please post new material in the relevant forum. (New stuff posted here will be removed.) Thanks. -fg-

Moderators: fgagnon, nikos

User avatar
nikos
Site Admin
Site Admin
Posts: 16295
Joined: 2002 Feb 07, 15:57
Location: UK

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by nikos »

if there was a nobel prize for computing, you'd deserve it :D
Kilmatead
Platinum Member
Platinum Member
Posts: 4797
Joined: 2008 Sep 30, 06:52
Location: Baile Átha Cliath

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Kilmatead »

Sadly, history teaches us that invention and the incessant clambering to get something to the public's attention more often takes the opposite path. :cry:

Nature always "buys it" in the end.
Tuxman
Platinum Member
Platinum Member
Posts: 1683
Joined: 2009 Aug 19, 07:49

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Tuxman »

nikos wrote: 2025 Mar 13, 06:55 if there was a nobel prize for computing, you'd deserve it :D
Considering that computing is essentially applied physics (with a touch of insanity, but unfortunately there are no Nobel Prizes for insanity, only trouble), I have either good or bad news, depending on whether Kilmatead would like one or not.
Tux. ; tuxproject.de
registered xplorer² pro user since Oct 2009, ultimated in Mar 2012
Kilmatead
Platinum Member
Platinum Member
Posts: 4797
Joined: 2008 Sep 30, 06:52
Location: Baile Átha Cliath

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Kilmatead »

Tuxman wrote: 2025 Mar 20, 00:42...whether Kilmatead would like one or not.
Kilmatead and his Ego have little interest in the superficial Awards of Man so celebrated in these latter centuries. That being said, they do appreciate the Ig Nobel Prize competition, celebrating frog levitation experiments and furthering the field of psycho-ceramics, better known as the science of "cracked pots". :wink:
Each winner received a medal shaped like a frying pan that makes noise when shaken and Cambridge parking passes that are valid from 3 a.m. – 4 a.m. the day after Christmas.
Tuxman
Platinum Member
Platinum Member
Posts: 1683
Joined: 2009 Aug 19, 07:49

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Tuxman »

Cambridge parking passes are, arguably, more useful than most Awards. Then again, I don't even have a car. :wink:
Tux. ; tuxproject.de
registered xplorer² pro user since Oct 2009, ultimated in Mar 2012
Kilmatead
Platinum Member
Platinum Member
Posts: 4797
Joined: 2008 Sep 30, 06:52
Location: Baile Átha Cliath

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Kilmatead »

Code: Select all

Changelog for 3.0.0.5

Added: Custom declaration support through INI to add up to 10 properties from Everything Search for use in x2 (see ReadMe.txt for full details)
Added: Option to expose the accumulated sizes of all reparse-targets further down in the tree, including sublinks - INI: SizesIncludeReparseTree[=0]

Fixed: Resolving deep paths in secondary-column queries caused ES to block indefinitely
Fixed: User-filters within ES could interfere with prefix modifiers the plugin reserves for IPC calls
Fixed: legacy IPC failure regression
Fixed: Compatibility for future iterations of ES to use an unnamed-instance pipe instead of the current/hardcoded (named) L"1.5a"
Fixed: Initial defaults for a customised INI could require an additional x2 restart to register
Fixed: Resolving path references could repeat unnecessarily if the attributes didn't match
Fixed: Columns other than Status.ES remained available despite being non-functional (failed validations, disabled options, etc.)

Updated to ES SDK v3.0.0.4 (Elided for size & minor LLVM/GCC adaptation)
Updated INI file conformance version and layout
Updated ReadMe.txt file
Awhile ago a user noticed that Everything Search included the three extra properties that the original (and long outdated) Foldersize extension also provided, namely "File Children", "Folder Children" and "All Children" which essentially show the numbers of such objects contained within folder/subfolders.

Apparently some people liked these columns, and the user requested that I add them to the plugin so they could wholly remove Foldersize and still retain all its functionality. This made sense to me, so I came up with a simple proof-of-concept... but then I heard a little voice inside my head (which had a suspiciously German accent) saying "but I can't live without seeing the 'Full Path UTF-8 Byte Length', could you add that too please?" You really know you're in trouble when a German says "please", so I needed a redesign to suit everyone, even the nitpicky types. You know who you are. :wink:

So, I came up with a simple method for anyone to add virtually any column from Everything into x2 with just an easy 1-line INI edit - all you need to know is the property/column name ES uses in its own UI, restart x2, and away you go.

Complete details of this are included in the ReadMe.txt file, and the plugin's INI provides the 3 columns mentioned above (pre-defined out of the box), so to add more all anyone needs to do is copy them and change the property name to reflect whatever ES column they want. The ReadMe explains all, including the smaller details of adjusting how a column-declaration is composed to behave.

Naturally the vast majority of these are already provided by x2 so there's no reason at all to use them... 'Name'? 'Path'? Those are for lesser mortals... however, there are a fair few which x2 doesn't natively provide, like "Plain Text Line Count", "Opens With", and "Document Content Type". You never know what you might find. And if you're truly experimental, you can do weird things like:

Code: Select all

folders: property:"Descendant Occurrence Count" param:"descendant:ext:mp3" alias:"Mp3's"
...which provides a numerical count of all the mp3 files (or whatever the heck you want) contained in an entire folder-tree (not just a subfolder). Why do this? Who knows? It's an extreme example, but best of all these are "real" numbers (32-bit, 64-bit, floats, or strings), not just textual representations of data, so you can use them in x2's own programmable columns, sort them, or even perform targeted rules in x2's own search. They will be slower than within Everything itself (even if indexed), but quite useable, and are mainly intended for quick reference anyway, so have fun! (Ok, yes, we all know that I'm the only one around here who thinks this sh*t is "fun", but you get the idea. :D)

Code: Select all

Custom_0 = folders: property:"Descendant Count" alias:"All Children"
Custom_1 = folders: property:"Descendant Folder Count" alias:"Folder Children"
Custom_2 = folders: property:"Descendant File Count" alias:"File Children"

Custom_3 = property:"Plain Text Line Count" files:txt;ini;log
Custom_4 = prop:412 files: !ext:exe;dll // Any file except EXE & DLL (ID  412, 'Opens With')

...and so forth.  (And yes, inline comments are allowed, too.)  Simples!
The other main addition to this update is the ability to get foldersizes from reparse-points not just when you are looking at a link, but from anywhere you browse within a path leading up to one... so if a subfolder of a subfolder contains a link you'll see that destination size added to the base of the original folder (when you didn't even know there was a link below it). Make sense? No? Well, these things only really matter to people who use a lot of links like this so if that's not you, don't worry about it - it's there if you want it. (It does require that ES have both the 'Attributes' and 'Reparse Target' properties indexed, but that is easily done for anyone who uses ES anyway, and is disabled by default, so you have to edit the INI to get it. Again, see the ReadMe for full details.)

Curiously, this sort of thing always comes into play when people look at the size of their %userprofile% folder, as that has a lot of hidden (and convoluted) reparse-points in it, and different programmes report the sizes in slightly different ways. For example, I installed a couple of those "directory size" utilities designed to show you where all your disc-space has gone just to check what they said, and depending on the settings used (follow links, consider hard-links, etc, etc) they all came up with different numbers which didn't agree with each other nor x2 native or even this plugin - so don't come running to me when the world collapses and the era of the zombie paradise is ushered in. :shrug:

Bottom-line: if you use or manage a lot of these links and want to see their sizes accurately represented as you browse around the streets of New York in a 1973 Buick Century pretending you're Kojak reincarnated (don't we all?), that's now possible (Buick sold separately). Interestingly, this is NOT done by "walking the tree" as all other programmes (including x2) do it, so I had a little fun there too. It'll add a little under one millisecond to query response times, but that's negligible. It also takes into account sub-link-chains, circular-links, etc, so it's robust enough for its britches. Who loves ya, Baby?

Link in main post updated (or just use this one). Also includes a few small bugfixes and the usual whatnot (weirdly, for adding a bunch of extra functionality, the plugin size is actually reduced from last time, so hey, benefits all around).

Please note that if you made any changes in the plugin's INI of the last version, these will be reset to default as the INI is automatically updated/rewritten to accommodate all the new shiny stuff.

Enjoy.
m417z
New Member
Posts: 1
Joined: 2025 Aug 02, 14:51

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by m417z »

Congrats on the new version! A couple of minor things I noticed:

In Everything2.h, the following strings got incorrectly modified from EVERYTHING to E2:

Code: Select all

#define E2_IPC_WNDCLASSW                L"E2_TASKBAR_NOTIFICATION"
#define E2_IPC_WNDCLASSW_15A            L"E2_TASKBAR_NOTIFICATION_(1.5a)"
The UNC\ prefix shouldn't be removed, it should be replaced with \\. Microsoft STL reference:
https://github.com/microsoft/STL/blob/5 ... stem#L3085
Kilmatead
Platinum Member
Platinum Member
Posts: 4797
Joined: 2008 Sep 30, 06:52
Location: Baile Átha Cliath

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Kilmatead »

m417z wrote: 2025 Aug 03, 15:56 ...the following strings got incorrectly modified from EVERYTHING to E2
Hah, that's what I get for not testing the legacy IPC anymore - well spotted, thanks. (I just did a mass find/replace to cut down on the clutter of long constants and function names, and missed those.) I made the same mistake awhile ago when you suggested using the '::' prefix to avoid user-masks - I blindly made the change, forgot about it, then when I went back to check the IPC a month later for something else and I had a heck of time figuring out where I went wrong. I checked your variant, and noticed you were quick to suggest, but slow to retract! :D (I did, in this version, find a use for it, so all's well.)
m417z wrote: 2025 Aug 03, 15:56 The UNC\ prefix shouldn't be removed, it should be replaced with \\.
Fair enough - I was just going by the original GetFinalPathNameByHandle cleanup from before. Never seen an actual UNC path used in anger in the wild myself, so it's like swatting invisible flies.

Thanks again. Changes employed, links updated. :wink:

Code: Select all

Changelog for 3.0.0.6

Fixed: Legacy IPC failure regression (again!)
Fixed: UNC prefix path modification
Tuxman
Platinum Member
Platinum Member
Posts: 1683
Joined: 2009 Aug 19, 07:49

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Tuxman »

Kilmatead wrote: 2025 Aug 01, 11:39 but then I heard a little voice inside my head (which had a suspiciously German accent)
Finally. It's working. :twisted:
Tux. ; tuxproject.de
registered xplorer² pro user since Oct 2009, ultimated in Mar 2012
Uzer99
Member
Member
Posts: 22
Joined: 2019 Jun 13, 14:05

SizesES Mod does not show folder sizes correctly in Xplorer2

Post by Uzer99 »

Hello,

SizesES Mod does not show folder sizes correctly in Xplorer2 for network drives even though the same mod does show folder sizes correctly in windows explorer for network drives. This is after the network drive has been indexed by EverythingSearch and shows the correct foldersize in EverythingSearch search window.

https://ptpimg.me/88jmxz.png
https://ptpimg.me/byrrh6.png
https://ptpimg.me/b8qhmr.png

Processor 12th Gen Intel(R) Core(TM) i9-12900HK (2.50 GHz)
Installed RAM 64.0 GB (63.7 GB usable)
System type 64-bit operating system, x64-based processor
Edition Windows 11 Pro
Version 24H2
OS build 26100.4652
Experience Windows Feature Experience Pack 1000.26100.128.0

Xplorer2 6.1.0.5 ULT x64

EverythingSearch 1.5a 1.5.0 1396a

SizesES 3.0.0.6
Kilmatead
Platinum Member
Platinum Member
Posts: 4797
Joined: 2008 Sep 30, 06:52
Location: Baile Átha Cliath

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Kilmatead »

@Uzer99, I've sent you PM regarding this. Apologies for the difficulty.
Uzer99
Member
Member
Posts: 22
Joined: 2019 Jun 13, 14:05

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Uzer99 »

Hi,

I responded via PM to provide the log and other data. If you dont get it shortly please reply back. There are 2 msgs in the PM outbox, but Im not sure if that means they didnt go thru to you or they are sent but not yet received.
Kilmatead
Platinum Member
Platinum Member
Posts: 4797
Joined: 2008 Sep 30, 06:52
Location: Baile Átha Cliath

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Kilmatead »

Uzer99 wrote: 2025 Aug 06, 00:29 There are 2 msgs in the PM outbox, but Im not sure if that means they didnt go thru to you or they are sent but not yet received.
It means "not yet received", as in I went to bed as it was late in my timezone. :D
User avatar
nikos
Site Admin
Site Admin
Posts: 16295
Joined: 2002 Feb 07, 15:57
Location: UK

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by nikos »

@Uzer99 do you have "fast network" option turned on? see program options, advanced section
also see if it makes any difference ticking the advanced option "Get folder sizes everywhere"
Uzer99
Member
Member
Posts: 22
Joined: 2019 Jun 13, 14:05

Re: SizeES: A Plugin for Fast, Persistent FolderSizes in x2 via Everything Search

Post by Uzer99 »

Hi,

No, I didnt have fast network option turned on. It's turned on now and I'll monitor to see if network connection is faster as I browse. So far no difference. Also, this option wont help the main issue as SizesES doesnt seem to be able to connect to any network locations period. Check the logfile I forwarded yesterday. It shows no remote network activity even though I clearly was browsing locally and remotely with X2.

[Startup] NoResolve: 1 Sustain: 1
[EnterCGV] |S:\TestLocalFolder0\TestLocalFolder\1|
[Issued] S:\TestLocalFolder0\TestLocalFolder\1
[PipedAs] {8208/8208} S:\TestLocalFolder0\TestLocalFolder\1
[ExitCGV] Not deferred = 5301038775

[EnterCGV] |S:\TestLocalFolder0\TestLocalFolder\2|
[Issued] S:\TestLocalFolder0\TestLocalFolder\2
[PipedAs] {8208/8208} S:\TestLocalFolder0\TestLocalFolder\2
[ExitCGV] Not deferred = 7318025360

[EnterCGV] |S:\TestLocalFolder0\TestLocalFolder\3|
[Issued] S:\TestLocalFolder0\TestLocalFolder\3
[PipedAs] {8208/8208} S:\TestLocalFolder0\TestLocalFolder\3
[ExitCGV] Not deferred = 5932010448

[EnterCGV] |S:\TestLocalFolder0\TestLocalFolder\4|
[Issued] S:\TestLocalFolder0\TestLocalFolder\4
[PipedAs] {8208/8208} S:\TestLocalFolder0\TestLocalFolder\4
[ExitCGV] Not deferred = 11505669572

[EnterCGV] |S:\TestLocalFolder0\TestLocalFolder\5|
[Issued] S:\TestLocalFolder0\TestLocalFolder\5
[PipedAs] {8208/8208} S:\TestLocalFolder0\TestLocalFolder\5
[ExitCGV] Not deferred = 7084261720

[EnterCGV] |S:\TestLocalFolder0\TestLocalFolder\6|
[Issued] S:\TestLocalFolder0\TestLocalFolder\6
[PipedAs] {8208/8208} S:\TestLocalFolder0\TestLocalFolder\6
[ExitCGV] Not deferred = 5624736256

[EnterCGV] |S:\TestLocalFolder0\TestLocalFolder\7|
[Issued] S:\TestLocalFolder0\TestLocalFolder\7
[PipedAs] {8208/8208} S:\TestLocalFolder0\TestLocalFolder\7
[ExitCGV] Not deferred = 6186555052

[EnterCGV] |S:\TestLocalFolder0\TestLocalFolder\8|
[Issued] S:\TestLocalFolder0\TestLocalFolder\8
[PipedAs] {8208/8208} S:\TestLocalFolder0\TestLocalFolder\8
[ExitCGV] Not deferred = 28489276

[EnterCGV] |S:\TestLocalFolder0\TestLocalFolder\9|
[Issued] S:\TestLocalFolder0\TestLocalFolder\9
[PipedAs] {8208/8208} S:\TestLocalFolder0\TestLocalFolder\9
[ExitCGV] Not deferred = 11926396