mikeyhoward
(Lurker)
2006-12-05 11:34 PM
Directory Size

Hi,

Can anyone point me in the right direction for reading the size of a directory?

Many Thanks


Witto
(MM club member)
2006-12-06 12:04 AM
Re: Directory Size

Maybe like this: Hey, Scripting Guy! How Can I Connect to a Folder When There’s an Apostrophe in the Folder Name? (look at the last bit of code at the bottom)
Quote:
For example, if you want to know the size of Ken Myer’s Folder, use this code:

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Ken Myer’s Folder")
Wscript.Echo "Size: " & objFolder.Size


LonkeroAdministrator
(KiX Master Guru)
2006-12-06 12:09 AM
Re: Directory Size

but remember, that has the same limit as getfilesize()
that is, 2GB

[€dit]
hmm, doesn't getfilesize() work on folders too?
don't think I've ever tried that...


mikeyhoward
(Lurker)
2006-12-06 12:23 AM
Re: Directory Size

tried getfilesize but only seemed to work on files not dir's.

The dir's will be larger than 2GB


LonkeroAdministrator
(KiX Master Guru)
2006-12-06 01:05 AM
Re: Directory Size

k, then you may need to change the output from witto's liner to something like:
Code:
$FSO = CreateObject("Scripting.FileSystemObject")
$Folder = objFSO.GetFolder("C:\Ken Myer’s Folder")
"Size: "  (0.0 + $Folder.Size) ?


or even:
"Size: " ((0.0 + $Folder.Size)/1024) "kB" ?
"Size: " ((0.0 + $Folder.Size)/1024/1024) "MB" ?


Witto
(MM club member)
2006-12-07 03:07 PM
Re: Directory Size

Is this larger than 2GB?

LonkeroAdministrator
(KiX Master Guru)
2006-12-07 03:43 PM
Re: Directory Size

witto, it is, but what is your point?

Witto
(MM club member)
2006-12-07 06:55 PM
Re: Directory Size

Originally Posted By: Jooel
but remember, that has the same limit as getfilesize()
that is, 2GB


LonkeroAdministrator
(KiX Master Guru)
2006-12-07 09:37 PM
Re: Directory Size

yes, but you are using wscript, not kixtart.
so your example doesn't count.


Witto
(MM club member)
2006-12-07 11:47 PM
Re: Directory Size

Whoops
Code:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Program Files")
Wscript.Echo "Size: " & objFolder.Size

Code:
If NOT @LOGONMODE
	Break On
Else
	Break Off
EndIf
Dim $SO
$SO=SetOption("Explicit", "ON")
$SO=SetOption("NoMacrosInStrings", "ON")
$SO=SetOption("NoVarsInStrings", "ON")
$SO=SetOption("WrapAtEOL", "ON")
Dim $objFSO, $objFolder
$objFSO = CreateObject("Scripting.FileSystemObject")
$objFolder = $objFSO.GetFolder("C:\Program Files")
? "Size: " + $objFolder.Size


LonkeroAdministrator
(KiX Master Guru)
2006-12-07 11:56 PM
Re: Directory Size

damn, I remembered wrong.
k, that method works.
hmm...
the integer limit is 2,147,483,647
so the size method must return either string or double.
and kixtart translates the double (if it is double) right, which is odd as well. iirc, that wasn't the case in the past.


Witto
(MM club member)
2006-12-08 12:05 AM
Re: Directory Size

Vartype() shows a 5 for $objFolder.Size.
Double?


LonkeroAdministrator
(KiX Master Guru)
2006-12-08 12:11 AM
Re: Directory Size

might be, or float.
whats vartypename()?


Witto
(MM club member)
2006-12-08 12:20 AM
Re: Directory Size

Double
Anyway, I looked for Vartype() in kix2010.doc