Feature Request: "Volume Mount Point" Type

A few months ago, I re-organized my computer to use "Volume Mount Points" and NTFS junctions instead of mapping every disk partitions to a letter.

Basically, I created a folder that contains all the "Volume Mount Points" and another folder that use NTFS junctions to make it appear like "one huge organized hard drive".

It works really well and it's easy to maintain using the "COPY MAKELINK=junction" feature but I'm missing a way to easily see which of my disks are getting full.

After a while, I grew tired of opening the "Computer Management \ Disk Management" application so I made a small application to show the free space of my volumes, based on this:

            foreach (System.Management.ManagementObject volume in
                         new System.Management.ManagementObjectSearcher("Select * from Win32_Volume").Get())
            {
                foreach (string propertyName in new string[] {
                            "Name",
                            "Label",
                            "FileSystem",
                            "FreeSpace",
                            "Capacity",

                            "Access", "Automount", "Availability", "BlockSize", "Caption", "Compressed", "ConfigManagerErrorCode",
                            "ConfigManagerUserConfig", "CreationClassName", "Description", "DeviceID", "DirtyBitSet",
                            "DriveLetter", "DriveType", "ErrorCleared", "ErrorDescription", "ErrorMethodology", "IndexingEnabled", 
                            "InstallDate", "LastErrorCode", "MaximumFileNameLength", "NumberOfBlocks", "PNPDeviceID", "PowerManagementCapabilities",
                            "PowerManagementSupported", "Purpose", "QuotasEnabled", "QuotasIncomplete", "QuotasRebuilding", "Status",
                            "StatusInfo", "SystemCreationClassName", "SystemName", "SerialNumber", "SupportsDiskQuotas",
                            "SupportsFileBasedCompression"})
                {
                    Console.WriteLine("{0} = {1}", propertyName, volume[propertyName] ?? "<null>");
                }
                Console.WriteLine(new string('*', 80));
            }

But it would be even better if I could show that informations directly in my "Volume Mount Points" folder.

Would it be possible to add a new type when a "junction" can be "linked" to a volume? That new type would expose the columns currently associated to the "Local Disk" type ("Free Space", "Filesystem", ""Percent Full", "Percent Free", "Used Space") with, maybe, a few mores ("Volume Size", "Volume Label").

Thanks.

I was able to add the columns I needed with a shell extension. It's nice that DOpus still support the old 'Column Handler" API even on Window 7/8.

It allowed me to brush a lot of dust off my rusty C++ skills at the same time... :slight_smile:

Anyway, if someone else is interested, I attached the shell extension library to this post (x32/x64, sources included).

My shell extension add the following columns to a 'Junction' folder:

[ul]
[li] Capacity : Total size of the volume.[/li]
[li] Used Space : Used space on the volume.[/li]
[li] Free Space : Free space on the volume.[/li]
[li] User Free Space : Free space on the volume for the current user.[/li]
[li] Percent Full : Percent full on the volume.[/li]
[li] Percent Free : Percent free on the volume.[/li]
[li] IsBroken : Indicate if the junction is linked to an existing folder or not ("" if OK, "Broken" if the linked folder does not exists).[/li][/ul]

And the following columns to a 'Volume Mount Point':

[ul]
[li] Volume Name : Volume name.[/li]
[li] Filesystem : Filesystem used for volume.[/li][/ul]
NTFSJunctionShellExt.7z (55.7 KB)

Nice job :slight_smile: