Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: Get size subdirectories directory
;******************************************************************************************************* ;** Name: MultDirSize ;** Author: Marc Worrel ;** Version: 1.0 ;** Purpose: Get size of all subdirectories in a given directory ;** Inputs: Start directory ;** Outputs: ;** Revisions: ;** Date: 01/14/2002 ;******************************************************************************************************* ;///////////////////////////////////// SPACER TO SEPARATE SECTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ; Set environmental information and initial variables | ;-------------------------------------------------------- IntControl(12,1+4,0,0,0) ;Suppress OK to close messages IntControl (49,1,0,0,0) ;Enables Min/Max/Close Widgets IntControl (1008,1,0,0,0) ;Enables Close command Result="" Decimals (2) ;Round to nearest hundredth StartDir="C:\Program Files" Format=StrCat ("Bytes",@TAB,"Kilobytes",@TAB,"Megabytes",@TAB,"Gigabytes") ;******************************************************************************************************* ;///////////////////////////////////// SPACER TO SEPARATE SECTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ; | ;-------------------------------------------------------- #DefineSubRoutine DlgCallback (DlgName,DlgEvent,DlgCtrl,Res4,Res5) If DlgEvent==0 ;Dialog initialization DialogProcOptions (DlgName,2,1) ;Watch for button presses ;Disable Maximize widget hwnd=DllHwnd("") ;Window Title of desired window goes here sysmenu=DllCall(StrCat(DirWindows(1),"User32.dll"),long:"GetSystemMenu",long:hwnd,long:0) DllCall (StrCat(DirWindows(1),"User32.dll"),long:"RemoveMenu",long:sysmenu,long:61488,long:0) ;Remove maximize from system menu OldStyle=DllCall(StrCat(DirWindows(1),"User32.dll"),long:"GetWindowLongA",long:hwnd,long:-16) NewStyle=OldStyle & ~65536 ;Disable Maximize widget SetWindow=DllCall(StrCat(DirWindows(1),"User32.dll"),long:"SetWindowLongA",long:hwnd,long:-16,long:NewStyle) EndIf If DlgEvent==2 ;Button press event If DlgCtrl==001 ;Get Size button was pressed DialogProcOptions (DlgName,1000,2) ;Disable dialog and set Wait cursor StartDir=DialogControlGet(DlgName,007,3) ;Get start directory DirList=DirItemize (StrCat(StartDir,"\*.*")) ;Get list of subdirectories Format=DialogControlGet (DlgName,006,6) ;Get size format If Format=="Bytes" Then Multiplier=1 If Format=="Kilobytes" Then Multiplier=0.0009765625 If Format=="Megabytes" Then Multiplier=0.00000095367431640625 If Format=="Gigabytes" Then Multiplier=0.000000000931322574615478515625 Result="" ;Reset results list for next query For EachDir=1 To ItemCount (DirList,@TAB) ;Determine how many loops to make ThisDir=ItemExtract (EachDir,DirList,@TAB) ThisDirSize=DirSize (StrCat(StartDir,"\",ThisDir),0) ThisDirSize=StrFixLeft(ThisDirSize*Multiplier," ",10) ;Keep size column right aligned ThisDir=StrFixChars (ThisDir," ",40) ;Pad name column so sizes line up Result=StrCat (Result,ThisDir,ThisDirSize,@TAB) ;Add subdirectory name and size to result list Next DialogControlSet (DlgName,008,5,Result) ;Display results list in Itembox DialogProcOptions (DlgName,1000,0) ;Re-enable dialog EndIf If DlgCtrl==002 Then Exit ;Exit button pressed If DlgCtrl==003 ;Browse button pressed StartDir=AskDirectory("Select directory to examine","",StartDir,"",0) ;Browse for new start directory DialogControlSet (DlgName,007,3,StartDir) ;Update Editbox with new start directory EndIf EndIf Return (-2) ;Return (-1) for normal processing or (-2) for persistant dialog #EndSubRoutine DirSizesFormat=`WWWDLGED,6.1` DirSizesCaption=`Check Directory Sizes` DirSizesX=015 DirSizesY=070 DirSizesWidth=302 DirSizesHeight=148 DirSizesNumControls=008 DirSizesProcedure=`DlgCallback` DirSizesFont=`DEFAULT` DirSizesTextColor=`DEFAULT` DirSizesBackground=`DEFAULT,DEFAULT` DirSizesConfig=1 DirSizes001=`077,127,036,012,PUSHBUTTON,DEFAULT,"&Get Size",1,5,32,DEFAULT,DEFAULT,DEFAULT` DirSizes002=`189,127,036,012,PUSHBUTTON,DEFAULT,"E&xit",0,5,DEFAULT,DEFAULT,DEFAULT,DEFAULT` DirSizes003=`258,003,036,012,PUSHBUTTON,DEFAULT,"&Browse",2,3,DEFAULT,DEFAULT,DEFAULT,DEFAULT` DirSizes004=`005,005,040,008,STATICTEXT,DEFAULT,"Display sizes in:",DEFAULT,7,DEFAULT,DEFAULT,DEFAULT,DEFAULT` DirSizes005=`103,005,022,008,STATICTEXT,DEFAULT,"&Start Dir:",DEFAULT,1,DEFAULT,DEFAULT,DEFAULT,DEFAULT` DirSizes006=`045,003,038,050,DROPLISTBOX,Format,"Megabytes",DEFAULT,8,DEFAULT,DEFAULT,DEFAULT,DEFAULT` DirSizes007=`128,003,126,012,EDITBOX,StartDir,DEFAULT,DEFAULT,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT` DirSizes008=`004,019,291,102,ITEMBOX,Result,DEFAULT,DEFAULT,4,DEFAULT,"Courier|5632|40|49","0|0|0",DEFAULT` DirSizesButtonPushed=Dialog("DirSizes",1) Exit
Article ID: W15746
File Created: 2003:05:13:11:29:54
Last Updated: 2003:05:13:11:29:54