This will populate a dialog with all folders in a specified folder, and show the size of each folder, to see what's eating up all your HDD space. (Wrote this before windirstat and spacemonger were ever thought of)
on *:load:if ($version < 6.14) { echo -a *** [FolderInfo] needs Mirc 6.14+, Please goto www.mirc.com and update Mirc then reload this addon. Unloading... | unload -rs $script } | else { set %f $fi | echo -a Thx for loading $+([,$fi,]...) Usage: $+(/,$fi) <dir> :: <dir> is optional }
on *:unload:unset %fi.* | var %q = $findfile($"($scriptdirreports),*.txt,0,.remove $1-) | var %qq = $findfile($"($scriptdirreports),*.html,0,.remove $1-) | echo -a Thx for Trying $+([,$fi,])
dialog folderinfo {
title "[FolderInfo]"
size -1 -1 230 225
option dbu
icon $scriptdiricons\check.ico, 0
list 1, 1 1 228 223, sort size
button "", 2, 0 0 0 0
menu "New", 3
item "New Folder", 6, 3
menu "Refresh", 4
item "Refresh List", 7, 4
menu "Generate Report", 10
item ".html", 11, 10
item ".txt", 12, 10
item break, 13, 10
item "Clear Report Files", 14, 10
item break, 15, 10
item "Explore Report Files", 16, 10
menu "Help", 5
item "Help", 8, 5
item "About", 9, 5
}
alias -l fmdx { return $"($scriptdirdlls\mdx.dll) }
alias -l f.rs {
var %f = $fi | dll $fmdx MoveControl %f 1 1 1 $calc($dialog(%f).w - 10) $calc($dialog(%f).h - 49)
did -i %f 1 1 headerdims $calc($dialog(%f).w - 111) $+ :1 81:2
did -i %f 1 1 headertext Folder $str($chr(160),10) (DoubleClick to Explore) $str($chr(160),15) DragDrop Supported $chr(9) DirSize $chr(9)
}
alias -l f.` { var %f = $fi | if (%fi.xywh) { dialog -s %f -1 -1 $gettok(%fi.xywh,3,32) $gettok(%fi.xywh,4,32) | f.rs } }
alias -l " if ($left($1-,1) != ") && ($right($1-,1) != ") { return $+(",$1-,") } | else return $1-
alias -l % if $isid && $1 isnum && $2 isnum { return $round($calc(($1 / $2) * 100),2) $+ % }
alias -l fi { return FolderInfo }
alias -l c { if $disk(c:) { return c:\ } | else { return $left($scriptdir,3) } }
alias didf { var %f:q = $"($1-) | if ($isdir(%f:q)) { if ($dialog($fi)) { did -a $fi 1 0 1 0 0 %f:q $chr(9) $foldersize($remove(%f:q,"),m).suf } | else break } }
alias -l fload.list {
if (%f:o) { unset %f:o | return }
var %f = $fi, %f.ms = did -a %f 1 0 0 0 0 $str(-,35) $chr(9) $str(-,15) | did -r %f 1
dialog -t %f $+([,%f,]) Calculating Totals for $+($upper($remove(%fi.1,")),$chr(160),...)
var %t = $finddir($remove(%fi.1,"),*,0,0,didf $1-)
if ($dialog(%f)) {
%f.ms | var %f.: = $remove(%fi.1,"), %f.n = $iif($len(%f.:) == 3 || $len(%f.:) == 2,$bytes($calc($disk(%f.:).size - $disk(%f.:).free),g3).suf,$foldersize($remove(%fi.1,"),g).suf) | did -a %f 1 0 2 0 0 $+($str($chr(160),3),Total:,$str($chr(160),5),%fi.1) $chr(9) %f.n
dialog -t %f $+([,%f,]) for $+([,$remove(%fi.1,"),]) = (Total Usage: %f.n $+ ) | did -c %f 1 $did(%f,1).lines
}
unset %f.*
}
alias -l f.genrep {
did -a $fi 1 0 0 0 0 $str($chr(160),55) Generating Report... | did -c %f 1 $did(%f,1).lines
var %r = $input(Enter a name for your Text report: $crlf (Don't include extention) $crlf ie: Bleh will create a report named Bleh.txt $crlf (Spaces are fine) $crlf If no name is provided random is.,eo,Report Name)
if (%r) { %f.file = $"($+($scriptdirreports\,$replace(%r,$chr(32),$chr(46)),.txt)) }
elseif (!%r) { var %r = $asctime(hhnnss), %f.file = $"($+($scriptdirreports\Folderinfo.Report.,%r,.txt)) }
write -c %f.file
write %f.file $+([,$fi,]) on $+([,$remove(%fi.1,"),]) $crlf | write %f.file $str(-,50) $crlf $crlf
set %f.st none | var %i = 1
while (%i <= $did($fi,1).lines) {
var %ffid = $did($fi,1,%i).text
if (*Total:* iswm %ffid) {
set %f.st total
write %f.file $crlf | write %f.file $str(-,50)
write %f.file $gettok($remove($gettok(%ffid,6,32),+,fs),1,160) $remove($gettok(%ffid,$numtok(%ffid,32),32),+,fs,0 0 0) $crlf $crlf
}
if (%f.st == none) {
var %f.m = $remove($gettok($gettok(%ffid,6-,32),1,34),+,fs,0 0 0)
if ($isdir(%f.m)) {
write %f.file $gettok(%f.m,$numtok(%f.m,92),92) $str($chr(160),5) $remove($gettok(%ffid,$numtok(%ffid,32),32),+,fs,0 0 0))
}
}
inc %i
}
var %fx = $input(Text Report generated and stored in $crlf $crlf $"($scriptdirReports\) $crlf $crlf Would you like to run? ,yid,Report Done!)
did -dl $fi 1 $did($fi,1).lines
if (%fx == $true) { run %f.file } | elseif (%fx == $false) { return }
}
alias -l f.genrephtml {
did -a $fi 1 0 0 0 0 $str($chr(160),55) Generating Report... | did -c %f 1 $did(%f,1).lines
var %r = $input(Enter a name for your Html report: $crlf (Don't include extention) $crlf ie: Bleh will create a report named Bleh.html $crlf (Spaces are fine) $crlf If no name is provided random is.,eo,Report Name)
if (%r) { %f.file = $"($+($scriptdirreports\,$replace(%r,$chr(32),$chr(46)),.html)) }
elseif (!%r) { var %r = $asctime(hhnnss), %f.file = $"($+($scriptdirreports\Folderinfo.Report.,%r,.html)) }
write -c %f.file
var %. = write %f.file
%. <html> | %. $chr(160) | %. <head> | %. <meta http-equiv="Content-Language" content="en-us">
%. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
%. <title>[ $+ $fi $+ ] on $+([,$remove(%fi.1,"),]) $+ </title> | %. </head> | %. $chr(160)
%. <body bgcolor="#EFEFEF">
%. <table border="0" width="100%" id="table1" height="59"> | %. <tr> | %. <td>
%. <p align="center"><i><font size="5" face="Arial Black">[ $+ $fi $+ ]</font><font face="Verdana" size="5">
%. </font></i><font face="Verdana"><i> by: <font size="2">
%. <a style="text-decoration: none" href="mailto:contrizzle@gmail.com">contr0l</a></font></i></font></td>
%. </tr> | %. </table> | var %f.dirs = $iif($len($remove(%fi.1,")) == 3 || $len($remove(%fi.1,")) == 2,$bytes($calc($disk($remove(%fi.1,")).size - $disk($remove(%fi.1,")).free),g3).suf,$foldersize($remove(%fi.1,"),g).suf)
%. <p align="center"><i><font face="Verdana" size="2">Directory Listed: <b> $+ $+([,$remove(%fi.1,"),]) $+ </b> with a Total size of <b> $+ %f.dirs $+ </b></font></i></p>
%. <hr>
%. <p align="left"><i><font face="Verdana" size="2"> $+ $str( ,30) $+ Directory: $+ $str( ,93) $+ Size:</font></i></p>
set %f.st none | var %i = 1
while (%i <= $did($fi,1).lines) {
var %ffid = $did($fi,1,%i).text
if (*Total:* iswm %ffid) {
set %f.st total
}
if (%f.st == none) {
var %f.mm = $remove($gettok($gettok(%ffid,6-,32),1,34),+,fs)
if ($isdir(%f.mm)) {
%. <div align="center">
%. <table border="1" width="70%" id="table2" bordercolordark="#808080">
%. <tr>
%. <td bordercolorlight="#FFFFFF" bordercolordark="#808080" align="center" width="525">
var %fe = $+(",$gettok(%f.mm,$+($numtok(%f.mm,92)),92),")
%. $iif($len(%fe) <= 62,%fe,$+($left(%fe,59),$chr(133))) $+ </td>
%. <td bordercolorlight="#FFFFFF" bordercolordark="#C0C0C0" align="center">
%. $remove($gettok(%ffid,3,34),+,fs,$+(s,$chr(32)),0 0 0) $+ </td>
%. </tr> | %. </table> | %. </div>
}
}
inc %i
}
%. <p align="center">...................................................................................</p>
%. <p align="center">Total HD space used for <b> $+ $remove(%fi.1,") </b> $+ is $+ <b> %f.dirs $+ </b> ::
%. currently using <b> $%($remove(%f.dirs,G,B),$remove($bytes($disk($left($remove(%fi.1,"),3)).size,g3).suf,G,B)) </b> of <b> $upper($left($remove(%fi.1,"),3)) $+ 's <u> $+ $bytes($disk($left($remove(%fi.1,"),3)).size,g3).suf $+ </u></b></p>
%. <hr>
%. <p align="right"><font size="2">::Created using [ $+ $fi $+ ]</font>
%. $crlf | %. </body> | %. </html> | %. $crlf
var %fx = $input(Html Report generated and stored in $crlf $crlf $"($scriptdirReports\) $crlf $crlf Would you like to run? ,ywd,Report Done!)
did -dl $fi 1 $did($fi,1).lines
if (%fx == $true) { run %f.file } | elseif (%fx == $false) { return }
}
alias folderinfo {
var %f = folderinfo
if ($1-) {
if ($isdir($"($1-))) {
set %fi.1 $"($1-) | if (!$dialog(%f)) { dialog -m %f %f | f.` } | elseif ($dialog(%f)) { dialog -x %f | dialog -m %f %f | f.` }
}
else echo -a $+([,%f,]) - Directory: $"($1-) is not a valid dir! | return
}
elseif (!$1-) { set %f:o y | if (!$dialog(%f)) { dialog -m %f %f | f.` } | elseif ($dialog(%f)) { dialog -x %f | dialog -m %f %f | f.` } }
}
; $folderinfo
; Author: FiberOPtics -- mirc.fiberoptics@gmail.com
; Requirements: mIRC 6.14 because the dispatch bug was only fixed then.
; Windows 95/98/NT4.0 + Internetexplorer 4.0
; Windows 2k/XP/2k3
;
; edited a bit, jus removed error checking
alias foldersize {
var %size
if $regex(fsize,$1,/^[a-z]:[\57\134]*$/i) {
%size = $disk($1).size
}
else {
var %objFso = a $+ $ticks, %objFolder = b $+ $ticks
.comopen %objFso Scripting.FileSystemObject
if !$comerr {
.comclose %objFso $com(%objFso,GetFolder,1,bstr*,$1,dispatch* %objFolder)
if $com(%objFolder) {
!.echo -q $com(%objFolder,Size,2)
%size = $com(%objFolder).result
.comclose %objFolder
}
}
}
return $iif($2,$bytes(%size,$2). [ $+ [ $prop ] ],%size)
}
on *:dialog:folderinfo:*:*: {
var %f = $fi, %f.d = did -i %f 1 1
if ($devent == init) {
dll $fmdx SetMircVersion $version
dll $fmdx MarkDialog $dname
dll $fmdx SetControlMDX %f 1 listview report single nosortheader droptarget hottrack underlinehot twoclick rowselect showsel > $scriptdirdlls\views.mdx
dll $fmdx SetControlMDX %f 2 Positioner size minbox maxbox > $scriptdirdlls\dialog.mdx
%f.d headerdims 355:1 81:2
%f.d headertext Folder $str($chr(160),10) (DoubleClick to Explore) $str($chr(160),15) DragDrop Supported $chr(9) DirSize $chr(9)
%f.d seticon normal $scriptdiricons\folder.ico
%f.d seticon normal $scriptdiricons\check.ico
dll $fmdx SetBorderStyle 1 staticedge
if (%fi.xywh) { dll $fmdx SetDialog %f coords %fi.xywh | f.rs }
if (!%f:o) { .timer 1 .2 fload.list } | unset %f:o
}
if ($devent == sclick) {
if (*sizing* iswm $did(%f,2)) || (*maximize* iswm $did(%f,2)) || (*restore* iswm $did(%f,2)) { f.rs | set %fi.xywh $dialog(%f).x $dialog(%f).y $dialog(%f).w $dialog(%f).h }
if ($did == 1) {
if ($gettok($did(1,1),1,32) == drop) {
did -i $dname 1 1 page dropinfo | tokenize 32 $did(1,1)
if ($isdir($"($3-))) { folderinfo $3- }
}
}
}
if ($devent == close) { set %fi.xywh $dialog(%f).x $dialog(%f).y $dialog(%f).w $dialog(%f).h | break }
if ($devent == dclick) {
var %p = $remove($gettok($did(%f,1).seltext,2,34),Total:)
if ($exists(%p)) { folderinfo $"($gettok($did(%f,1).seltext,2,34)) }
}
if ($devent == menu) {
if ($did == 6) { set %f:i $sdir($iif(%f:i,$ifmatch,$c),Pick a Folder to get Info on...) | if (%f:i) { folderinfo %f:i } }
if ($did == 7) { if ($did(%f,1).lines > 1) { folderinfo %fi.1 } }
if ($did == 8) { run $"($scriptdirFolderInfo.readme.txt) }
if ($did == 9) { var %ffi = $input($+([,%f,]) $crlf $chr(160) by: contr0l $crlf $crlf Email: contrizzle@gmail.com ,oid,Folder Info About) }
if ($did == 11) { if ($did(%f,1).lines > 1) { f.genrephtml } }
if ($did == 12) { if ($did(%f,1).lines > 1) { f.genrep } }
if ($did == 14) { var %q = $findfile($"($scriptdirreports),*.txt,0,.remove $1-) | var %qq = $findfile($"($scriptdirreports),*.html,0,.remove $1-) | var %qqq = $input($iif(%q && %qq,$calc(%q + %qq),All) Report File(s) Cleared.,oid,Reports Cleared) }
if ($did == 16) { run $"($scriptdirreports) }
}
}
menu menubar {
-
[- FolderInfo -]
.Open...
..Open:folderinfo
..Open with <Dir>:set %f.td $sdir($iif(%f.td,$ifmatch,$c),Pick a Folder to get Info on...) | if (%f.td) { folderinfo %f.td }
..-
.-
.Unload [FolderInfo] ?:var %sc = $script | var %rusure = $input(You are about to unload [FolderInfo] ... $crlf Forever... $crlf And ever... $crlf Are You Sure?!?!,yhd,Are You Sure?) | if (%rusure == $true) { unload -rs %sc }
-
}