WAD Free issue

May 20, 2008
473
2
Code:
D:\>free c: d:

 Volume in drive C is unlabeled      Serial number is 6248:0def
   214,819,663,872 bytes total disk space
   162,726,023,168 bytes used
    52,093,640,704 bytes free
              75.8 % in use

 Volume in drive D is DATA           Serial number is 4a67:f149
   214,819,663,872 bytes total disk space
   162,726,023,168 bytes used
    52,093,640,704 bytes free
              75.8 % in use

D:\>cdd c:\

C:\>free c: d:

 Volume in drive C is unlabeled      Serial number is 6248:0def
   104,864,092,160 bytes total disk space
    98,079,625,216 bytes used
     6,784,466,944 bytes free
              93.5 % in use

 Volume in drive D is DATA           Serial number is 4a67:f149
   214,819,663,872 bytes total disk space
   162,726,023,168 bytes used
    52,093,640,704 bytes free
              75.8 % in use
Notice how the C: drive reports different amounts of space between the two calls. In the first call to free, the current folder on C: happened to be a junction pointing to a folder on D:. So, instead of reporting the space for C:, it reported the space for D:. In the second call to free, it was done at the root of C: and not within a junction to D:. Thus, it reported the expected values.

Per the help, the parameter is supposed to be a drive letter, not a folder path. Thus, when specifying just the drive letter, I would have expected the values of C:\ instead of C:\junction=>D:\folder. Instead, it appears to operate on drive letter only for the label and serial number, but on the (implied?) folder path for the space calculations. I get similar differences for "free C:\junction" vs "free C:\". Should folder paths even be allowed? They are certainly undocumented. Either the help or the result is incorrect. What is the intended behavior?
Code:
C:\>ver /r

TCC  17.00.71   Windows 7 [Version 6.1.7601]
TCC Build 71   Windows 7 Build 7601  Service Pack 1
 
Nov 13, 2008
255
3
www.thedave.me
Folder paths must be allowed as volumes can be mounted anywhere, not just as the root, so different folders can easily represent different size sizes, including total and free space.

If anything, this is a documentation bug, the documentation likely predates the time when it was possible to mount a volume within another volume.
 
May 20, 2008
473
2
I agree about the folder path support, which does currently work. My issue is that drive letter isn't guaranteed. Given the documentation, I expected having just the drive letter to be equivalent to the root of that drive, i.e. C: == C:\, and not the current folder on that drive, which could be a different drive entirely. In the case of using the other drive (C:\junction => D:\folder), the drive label and serial number are still for C: and not for D:. Part of the data reported is for the (expected) drive letter while another part is for the target drive of a junction. It's inconsistent. If it is going to report a different drive than that referenced by the parameter, there should be some indication of that. For example, the output could be like this:
Code:
D:\>free C:\Junction

Junction: D:\folder

Volume in drive D is DATA           Serial number is 4a67:f149
   214,819,663,872 bytes total disk space
   165,437,747,200 bytes used
    49,381,916,672 bytes free
                77 % in use
If the path is a link or junction to another drive, that should be indicated and the data reported should be for that other drive, both the first info line as well as the space usage report. This might allow C: to report C:\[current folder] instead of C:\ and still provide an expected output.
 
May 20, 2008
473
2
Is it intended that the drive label and serial number NOT match the space data displayed or is that full set of data returned by the API? Is there harm in detecting that what was requested was a junction and showing that target folder information before (or after) the data returned by the API (or with an optional parameter I can add to a free override alias)? I'm not disagreeing with the clamor to show "real" drive for junctions, but I do disagree with not knowing that is what is happening when I specify just the drive letter. I guess help should be updated to reflect what is really happening.
 

rconn

Administrator
Staff member
May 14, 2008
12,364
150
It's not TCC doing that. TCC is calling the Windows GetDiskFreeSpaceEx API with the argument "C:", and Windows is interpreting that as a request for the current directory info.

I'm loathe to override the default Windows behavior here. But you can force the explicit disk by doing a "FREE c:\".
 
Similar threads
Thread starter Title Forum Replies Date
fpefpe How to? free (internal) command Support 0
B How to? compatability with free d/load of TCC/LE Support 8
fpefpe How to? Free command Support 1
S TCMD14 & free for JUNCTION's Support 14
Steve Pitts Strange problem with FREE Support 10
T Fixed free reports negative used amount Support 8
M Free version of 4Dos? Support 5
millardjk AVG free 8.0 and takecmd.dll (b64) Support 5
rconn Free update keys sent Support 2
cgunhouse TCToolBar /W Issue Support 2
G v28 Display Issue Support 7
Jay Sage Issue with CD_ENTER Alias Support 37
Jay Sage Issue with CD_LEAVE Alias Support 3
fpefpe How to? issue with % and evaluation Support 5
cgunhouse Standard User Account Issue Support 2
samintz WAD Display wrapping issue Support 5
M TCC color issue in ConEmu Support 4
samintz Timer issue Support 4
Alpengreis Documentation Minor issue in help file for view /E Support 1
samintz WAD ANSI issue Support 3
D TCSTART issue after reinstallation Support 14
A Documentation [Help file] OPTION "//" synopsis formatting issue Support 0
Chen Touboul Overtyping issue - i press the Insert key, help till press enter for new line in TCC Support 2
Y TCC and Cmder imcompatibility issue Support 7
M Another possibly strange remote registry issue Support 5
T WAD bpokestr issue Support 5
D High-DPI Scaling issue Support 1
S CMDebug 22 issue with del command Support 1
cgunhouse Foldermonitor Issue Support 7
samintz Build 38 Install issue Support 5
rps WAD Setlocal issue Support 4
Luiz Rodrigues Issue with Maven Support 1
Seven Update / install issue with 20.0.20.10.32 take command Support 7
Fross WebDav Drive Mapping Issue Support 19
D Upgrade issue Support 3
Fross V20b8 Everything Issue Support 5
T TCC display issue Support 1
cgunhouse _logfile Issue Support 5
T Fixed Querybox issue Support 1
cgunhouse Fixed Share Memory Issue Support 5
cgunhouse Foldermonitor with "/E" Option Issue Support 6
Fross TabComplete Argument Issue Support 1
fpefpe How to? Stange start up issue Support 1
C cosmetic issue with LIST's (I) Support 9
jbarnes1967 TC 18.00 x64 issue with lua io.popen() Support 2
D How to? Wildcards as sets - looping issue with FOR and REN Support 7
R Fixed v17.0.54 Tab->COMSPEC Dialog Box Issue Support 2
R Minor Cosmetic Issue in Take Command Window Support 2
cgunhouse One line IFF ... Then ... Else ... EndIFF Statement issue in V17 Support 13
cgunhouse IFTP Path Issue in V17 - Fixed Support 7

Similar threads