I initially wrote a script that returns # of files, folders and folder size in a specific folder based on an input directory. I am trying to modify the script to read from a source file, and it is not working. Additionally, on directories with less than 100KB, it is not returning size. Can someone help me de-bug it please? Code is below.
Thanks,
IPT
*******************
Option Explicit
On Error Resume Next
Dim objfso, boolExcel, objXL, cellcount, nTotal, FolderCount, drive, fso, fl, folder, fsize, TotalSize, openfile, fstring_err
set objfso = createobject("scripting.fi
lesystemob
ject")
if objfso.FileExists("C:\Prog
ram Files\Microsoft Office\Office11\excel.exe"
) then
boolExcel = true
Set objXL = WScript.CreateObject("Exce
l.Applicat
ion")
end if
if boolExcel then
objXL.Visible = TRUE
objXL.WorkBooks.Add
objXL.Columns(1).ColumnWid
th = 30
objXL.Columns(2).ColumnWid
th = 30
objXL.Columns(3).ColumnWid
th = 30
objXL.Columns(4).ColumnWid
th = 30
objXL.Cells(1, 1).Value = "Folder Name"
objXL.Cells(1, 2).Value = "Number of Files"
objXL.Cells(1, 3).Value = "Number of Folders"
objXL.Cells(1, 4).Value = "Size of Root Folder"
cellcount = 4
else
set output = objfso.CreateTextFile("fil
echeck.txt
",true)
output.writeline "Folder Name,File Count,Size"
end if
Set fso = CreateObject("Scripting.Fi
leSystemOb
ject")
Set fstring_err = fso.CreateTextFile("c:\err
orlog.txt"
, True)
Set getfilepath = fso.GetFile("c:\checkfiles
ize.txt")
Set openfile = getfilepath.OpenAsTextStre
am(1, -2)
Do While Not openfile.AtEndOfStream
strfilepath = ""
strfilepath = openfile.ReadLine
For Each strfilepath in getfilepath
Set fl = fso.GetFolder(strfilepath)
GetFileCount fl
objXL.Cells(cellcount,1) = fl.path
objXL.Cells(cellcount,2) = nTotal
objXL.Cells(cellcount,3) = FolderCount
objXL.Cells(cellcount,4) = fsize
cellcount = cellcount + 1
Next
Loop
msgbox "Process completed!"
openfile.Close
fstring_err.Close
Set fso = Nothing
Set wsh = Nothing
Function GetFileCount(fl)
Dim nextFolder, folders, Files, SubFolders, SubFolder, firstpass, nextf
err.clear
nextFolder = fl.Path
Set Files = fl.Files
Set folders = fl.subfolders
nTotal = nTotal + Files.Count
FolderCount = FolderCount + folders.Count
Set SubFolders = fl.SubFolders
For Each SubFolder In SubFolders
nextf = nextf & folders.Count
nextFolder = nextFolder & GetFileCount(SubFolder)
fsize = round(fl.size /1024)
if len(fsize) >= 4 then
fsize = Round(fsize /1024) & " MB"
else
fsize = Round(fsize) & " KB"
end if
if err.number <> 0 then
msgBox SubFolder & " - " & err.description
end if
Next
End Function
Start Free Trial