K
Kenneth Keeley
Hi,
I am looking for a script that could delete all files out of a tree that
are older than X number of days. I would then like it to delete any
subfolders that contain no files after the old files are deleted. So far I
have found a script that will delete the files but I am don't how to delete
the folders.
Thanks for any help.
Kenneth
This is the code for deleting the Files.
' Delete files older than # days...
KillDate = Date() - NoOfDays
' Prepare List of Files to Kill.
KillList = Array()
SelectFiles "D:\FolderToCheck", KillDate, KillList, true
for FileCount = 0 to ubound(KillList)
on error resume next 'in case of 'in use' files...
KillList(FileCount).Delete true
next
Sub SelectFiles(sPath,vKillDate,arFilesToKill,bIncludeSubFolders)
' Get Filesystem Handle.
set Filesystem = createobject("scripting.filesystemobject")
'select files to delete and add to array...
set folder = Filesystem.getfolder(sPath)
set files = folder.files
for each file in files
' uses error trapping around access to the
' Date property just to be safe
'
dtcreated = null
on error resume Next
dtcreated = file.datecreated
on error goto 0
if not isnull(dtcreated) Then
if dtcreated < vKillDate then
count = ubound(arFilesToKill) + 1
redim preserve arFilesToKill(count)
set arFilesToKill(count) = file
end if
end if
next
if bIncludeSubFolders then
for each fldr in folder.subfolders
SelectFiles fldr.path,vKillDate,arFilesToKill,true
next
end if
end sub
I am looking for a script that could delete all files out of a tree that
are older than X number of days. I would then like it to delete any
subfolders that contain no files after the old files are deleted. So far I
have found a script that will delete the files but I am don't how to delete
the folders.
Thanks for any help.
Kenneth
This is the code for deleting the Files.
' Delete files older than # days...
KillDate = Date() - NoOfDays
' Prepare List of Files to Kill.
KillList = Array()
SelectFiles "D:\FolderToCheck", KillDate, KillList, true
for FileCount = 0 to ubound(KillList)
on error resume next 'in case of 'in use' files...
KillList(FileCount).Delete true
next
Sub SelectFiles(sPath,vKillDate,arFilesToKill,bIncludeSubFolders)
' Get Filesystem Handle.
set Filesystem = createobject("scripting.filesystemobject")
'select files to delete and add to array...
set folder = Filesystem.getfolder(sPath)
set files = folder.files
for each file in files
' uses error trapping around access to the
' Date property just to be safe
'
dtcreated = null
on error resume Next
dtcreated = file.datecreated
on error goto 0
if not isnull(dtcreated) Then
if dtcreated < vKillDate then
count = ubound(arFilesToKill) + 1
redim preserve arFilesToKill(count)
set arFilesToKill(count) = file
end if
end if
next
if bIncludeSubFolders then
for each fldr in folder.subfolders
SelectFiles fldr.path,vKillDate,arFilesToKill,true
next
end if
end sub