SELECT DEL (*D.DLL) - output curious

Jun 7, 2008
121
0
#1
Running
TCC 12.11.70 Windows XP [Version 5.1.2600]

Hi just run

SELECT DEL (*D.DLL)

The output I got was

>>
:
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSPVODD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSPVOD2D.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSQHourImportD.dll
1 file deleted 8,777,728 bytes freed
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSRCardImport2D.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSRepeatStatusD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSNZExportD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSNZGenreImportD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSNZPMFImportD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSNZPRGImportD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSNZUPDImportD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSortD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSponsorImport2D.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSponsorImport3D.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSpotImport2D.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSSpotImport3D.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSStaticImportD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSStoredData2D.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSStoredDataD.dll
1 file deleted
Deleting C:\TVPCDev\MDBDev\Bin\BINEXEC3\TSUniverseImport2D.dll
1 file deleted

[C:\TVPCDev\MDBDev\Bin\BINEXEC3]
>>

What interested me was halfway I saw that "8,777,728 bytes freed"
Why does one file get that message and not the others? Does it mean anything?
Seems most curious.

Thanks

Stephen Howe
 
#2
Stephen Howe wrote:
| Running
| TCC 12.11.70 Windows XP [Version 5.1.2600]
|
| Hi just run
|
| SELECT DEL (*D.DLL)
|
| The output I got was
...
|
| What interested me was halfway I saw that "8,777,728 bytes freed"
| Why does one file get that message and not the others? Does it mean
| anything?
| Seems most curious.

If a single copy of a DLL has multiple directory entries (hard links), the
"freed" message would be associated with the last of its directory entry's
deletion. If such was not the case, I am also surprized!
--
Steve
 
#3
On Fri, 22 Jul 2011 12:11:06 -0400, Stephen Howe <> wrote:

|What interested me was halfway I saw that "8,777,728 bytes freed"
|Why does one file get that message and not the others? Does it mean anything?
|Seems most curious.

I find that with a simple DEL, you get the "freed" message if the file size is
greater than 736 bytes (and that seems wrong).

Code:
v:\tcmd12help> echos %@repeat[a,736] > rep.txt

v:\tcmd12help> del rep.txt
Deleting V:\tcmd12help\rep.txt
     1 file deleted

v:\tcmd12help> echos %@repeat[a,737] > rep.txt

v:\tcmd12help> del rep.txt
Deleting V:\tcmd12help\rep.txt
     1 file deleted              4,096 bytes freed
This does **not** seem to be the explanation for what you observed (assuming
those DLLs were bigger than 736 bytes).
 
#5
On Fri, 22 Jul 2011 13:03:27 -0400, Charles Dye <> wrote:

|---Quote (Originally by vefatica)---
|I find that with a simple DEL, you get the "freed" message if the file size is greater than 736 bytes (and that seems wrong).
|---End Quote---
|I'll bet that that number varies with the length of the filename.... :-)

Yeah, it does. I'm even more intriqued. Does this seem right?
 

rconn

Administrator
Staff member
May 14, 2008
10,779
97
#6
Everybody should review the help for DEL:

"DEL displays the amount of disk space recovered, unless the /Q option is
used (see below). It does so by comparing the amount of free disk space
before and after the DEL command is executed. This amount may be incorrect
if you are using a deletion tracking system which stores deleted files in a
hidden directory, or if another program performs a file operation while the
DEL command is executing."

In the case of small files, they are stored in the directory entries, not as
separate files, so you won't see any difference before and after.

And if you're deleting to the recycle bin, you won't see any difference
until you fill it up & start discarding old entries.

Rex Conn
JP Software
 
#7
On Fri, 22 Jul 2011 13:26:21 -0400, rconn <> wrote:

|In the case of small files, they are stored in the directory entries, not as
|separate files, so you won't see any difference before and after.

Thanks. That's the part I wasn't aware of.
 
Jun 7, 2008
121
0
#8
If a single copy of a DLL has multiple directory entries (hard links), the
"freed" message would be associated with the last of its directory entry's
deletion. If such was not the case, I am also surprized!
--
Steve
Steve, it was not the case. All of those DLLs were single directory entries.
They vary in size from 15K to 625K

Cheers

Stephen
 
Jun 7, 2008
121
0
#9
Further information on the file in question. I have a copy of it.
I see

20/11/2001 22:42 221,241 TSQHourImportD.dll
221,241 bytes in 1 file and 0 dirs 225,280 bytes allocated

This is an old defunct Debug DLL.
I am amazed that deleting a copy of it in BINEXEC3 caused "8,777,728 bytes freed"
I checked for alternative streams : None attached.
And the granularity of the NTFS is such that small files take up 4K.
If TCC was multithreaded, I could account for this if a separate thread caused output to be intermingled in the wrong order and "8,777,728 bytes freed" should have been at the bottom of all the deletions and was the cumulative total.

A real mystery.

Cheers

Stephen Howe