Solved

VBScript that can detect when file(s) to a DIR have been deleted, modified or added.

Posted on 2010-11-09
7
436 Views
Last Modified: 2012-05-10
Hello,

I have been using a vbScript that would create a file which would include the filenames of  any files added to the Directory specified in the vbScript from there last time the vbScript was run . This has been working great but I am now in need of this file (value specified in strReport ) to include the filenames of those files that have:

a) been added to the directory
b) been deleted from the directory
c) been modified in that directory (want to track users that open files and change values in said file and save)

I have the vbScript below. Any thoughts or suggestions would be greatly appreciated.

Thank You

Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
 
strFolder = "c:\folder_to_monitor"
strList = "all_current_files.txt"
strReport = "new_files_added_report.txt"
 
Set objOldFiles = CreateObject("Scripting.Dictionary")
objOldFiles.CompareMode = VbTextCompare
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
If objFSO.FileExists(strReport) Then
    objFSO.DeleteFile strReport, True
End If
 
If objFSO.FileExists(strList) Then
    Set objList = objFSO.OpenTextFile(strList, ForReading)
    
    Do Until objList.AtEndOfStream
        arrLine = Split(objList.ReadLine, vbTab)
        objOldFiles.Add arrLine(0), arrLine(1)
    Loop
    
    objList.Close
End If
 
Set objList = objFSO.OpenTextFile(strList, ForWriting, True)
Set objFolder = objFSO.GetFolder(strFolder)
 
For Each objFile In objFolder.Files
    strName = objFile.Name
    dtmCreated = objFile.DateCreated
    objList.WriteLine strName & vbTab & dtmCreated
    
    If Not objOldFiles.Exists(strName) Then
        Set objReport = objFSO.OpenTextFile(strReport, ForAppending, True)
        objReport.WriteLine strName & vbTab & dtmCreated
        objReport.Close
    End If
Next

Open in new window

0
Comment
Question by:Charlie_Melega
  • 4
  • 2
7 Comments
 

Author Comment

by:Charlie_Melega
ID: 34098299
To further clarify on this, the primary objective of this vbScript should be to determine if: 1) File has been opened 2) File contents have been changed, line added / removed 3) File has been saved

Thanks for suggestions
0
 
LVL 42

Expert Comment

by:sedgwick
ID: 34101337
the script you have posted indeed log the file that were added to the directory but not since the last run of the script but from the first run of the script.
which means that if no new files were added to the directory, all_current_files.txt still logs them.
0
 
LVL 42

Expert Comment

by:sedgwick
ID: 34101415
tell me of the following meet your requirement:
each time you run the script the log file will be appended with a section which states:


•      time of running the script
•      added files
•      modified  files + DateLastModified
•      accessed files (but not modified) + DateLastAccessed
•      deleted files
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

Author Comment

by:Charlie_Melega
ID: 34102506
Hello Sedgewick,

Yes, the requirements that you state above are exactly what is needed. However, a NEW log file is created  if and only if one of these conditions has occurred since the last time the script was run.  I do  not want to append an existing file as this will not allow me to identify unique activity since the last run of the script. I have another 3rd party tool that I will be using so the output of the log file will only include the activity you referenced above, in the log file. If no activity has occurred from the last time the script was run, then no log file would be produced or simply an empty log file.

Thanks for your help!!
0
 

Author Comment

by:Charlie_Melega
ID: 34112825
I guess this may not be possible?
0
 
LVL 65

Accepted Solution

by:
RobSampson earned 500 total points
ID: 34150203
Hi, was this question answered here:
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_26609153.html

or does this one have different requirements?

Regards,

Rob.
0
 

Author Comment

by:Charlie_Melega
ID: 34241652
Hello Rob,

Yes, you answered the question very nicely in that other post.

Thanks again
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Windows Script Host (WSH) has been part of Windows since Windows NT4. Windows Script Host provides architecture for building dynamic scripts that consist of a core object model, scripting hosts, and scripting engines. The key components of Window…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question