Smart questions
Smart answers
Smart people
Join Tek-Tips Forums
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Member Login




Remember Me
Forgot Password?
Join Us!

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips now!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

Join Tek-Tips
*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.
Jobs from Indeed

Link To This Forum!

Partner Button
Add Stickiness To Your Site By Linking To This Professionally Managed Technical Forum.
Just copy and paste the
code below into your site.

Find files in folders and subfolders

lbradio (IS/IT--Management) (OP)
17 Apr 10 10:22
I'm working on a script which have to check weather a file is younger than 2 hours. It should check in all folders and subfolders.

After finding a file younger than 2 hours, an email should be sent.

The script is working ok for the given folder, but I also need to check subfolders. And that's where I'm stuck.

I need some help in this one.

==================================

sPath = "c:\test"
'sPath = "c:\2"



Set oFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")

Set oFolder = oFSO.GetFolder(sPath)
Set oFiles = oFolder.Files


If oFiles.Count > 0 Then

   bolFileIsNewEnough = False  ' init value


   For Each oFile In oFiles
     On Error Resume Next
     dFileModDate = oFile.DateLastModified
     If Err.Number = 0 Then
       If DateDiff("n", dFileModDate, Now) < 120 Then
         bolFileIsNewEnough = True
 msgbox "Found file younger than 2 hours"

 objShell.Run "C:\postie.exe -host:172.xx.xx.xx:26 -from:server@domain.com -to:me@domain.com -s:subject -msg:The_message "


         Exit For
       End If
     End If
   Next
   On Error Goto 0

   If Not bolFileIsNewEnough Then
     MsgBox "All files are older than 2 hours."
   End if

Else
   MsgBox "Directory is empty"
End If

 
tsuji (TechnicalUser)
18 Apr 10 9:36
For a basic layout of recursive search, there are plenty examples out there; check this for instance.
    http://blogs.technet.com/heyscriptingguy/archive/2004/10/20/how-can-i-get-a-list-of-all-the-files-in-a-folder-and-its-subfolders.aspx

It is sufficient to put the checking like you did during the traversing.
lbradio (IS/IT--Management) (OP)
18 Apr 10 15:59
Thanks for the reply. I've read your suggestion. I've tried some simular solutions, but until now without the result. I'll give it a try again.

Thanks.  
lbradio (IS/IT--Management) (OP)
19 Apr 10 7:58

I've managed to insert the recursive routine. Even filtered on extension
Now there's only one chalenge to go.

I would like to search for files in folders and subfolders, but exclude a specific subfolder.

Anyone a suggestion?






============================================================================================



' Check wether a file exist in folders and subfolders, older than x hours.
' If a file is found, an email will be sent.

' L. de Bles 2010




sPath            = "c:\test"        ' Path to start whit
Stime            = 120            ' Number of minutes to compare with
Const strSearchedExt    = "icm"            'extension without the dot


Set oFSO        = CreateObject("Scripting.FileSystemObject")
Set oFolder        = oFSO.GetFolder(sPath)
Set oFiles        = oFolder.Files
Set objShell        = CreateObject("Wscript.Shell")


'    Wscript.Echo oFolder.Path
    bolFileIsNewEnough = False  ' init value

    For Each oFile in oFiles
        On Error Resume Next

        strExt =  oFSO.GetExtensionName (oFile.Name)
        if 0 = StrComp(strExt, strSearchedExt, vbTextCompare) Then
            dFileModDate = oFile.DateLastModified

            If Err.Number = 0 Then

                If DateDiff("n", dFileModDate, Now) > sTime Then
                    bolFileIsNewEnough = True
                    Wscript.Echo oFolder.Path & "\" & oFile.Name
'                    msgbox "bestand gevonden"
'                    objShell.Run "C:\Beheer\postie.exe -host:<mailserver> -from:server@test.com -to:me@test.com -s:subject -msg:message "
                End if

            End if

         End if

    Next










    ShowSubfolders oFSO.GetFolder(sPath)

    Sub ShowSubFolders(Folder)

        For Each Subfolder in Folder.SubFolders
            Set oFolder = oFSO.GetFolder(Subfolder.Path)
            Set oFiles = oFolder.Files

                For Each objFile in oFiles
                    On Error Resume Next
                    strExt =  oFSO.GetExtensionName (objFile.Name)

                    if 0 = StrComp(strExt, strSearchedExt, vbTextCompare) Then
                        Wscript.Echo oFolder.Path & "\" & objFile.Name
                        dFileModDate = objFile.DateLastModified

                        If Err.Number = 0 Then

                            If DateDiff("n", dFileModDate, Now) > sTime Then
                                bolFileIsNewEnough = True
                                Wscript.Echo oFolder.Path & "\" & objFile.Name
'                                msgbox "bestand in subfolder gevonden"
'                                objShell.Run "C:\Beheer\postie.exe -host:<mailserver> -from:server@test.com -to:me@test.com -s:subject -msg:message "
                            End if

                        End if

                    End if

                Next

                    ShowSubFolders Subfolder

        Next

    End Sub



============================================================================================
 

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Back To Forum

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close