Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 177
  • Last Modified:

determine if file changed

I am trying to create a file backup, but only want to overwrite files that have changed
How can i do this without using FSO ?
0
isnoend2001
Asked:
isnoend2001
2 Solutions
 
aikimarkCommented:
you could use the file attribute to determine if the file has been modified and needs archiving.  to see this most easily, issue the following command:
DIR /AA

with XCOPY, this is the /A flag

========================
you can use the VB DIR() function to retrieve file names in a directory.  then you would concatenate the directory name and the file name as a parameter to the VB GetAttr() function.  see snippet example

Note:  If using the VB FileCopy statement, you will need to use the SetAttr statement to indicate you've created a backup.

strFilename = Dir(strPath & "*.*", vbNormal)
Do Until Len(strFilename) = 0
  FName = strPath & strFilename
  lngHasChanged = GetAttr(FName) And vbArchive
  If lngHasChanged = vbArchive Then
    ' create file backup
  End If
  strFilename = Dir
Loop

Open in new window

0
 
David LeeCommented:
Hi, isnoend2001.

You can use WMI.  A query like the one below will return all files that have their archive bit set.
On Error Resume Next
 
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
 
arrComputers = Array(".")
For Each strComputer In arrComputers
   WScript.Echo
   WScript.Echo "=========================================="
   WScript.Echo "Computer: " & strComputer
   WScript.Echo "=========================================="
 
   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
   Set colItems = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile WHERE Archive='True'", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
 
   For Each objItem In colItems
      WScript.Echo "AccessMask: " & objItem.AccessMask
      WScript.Echo "Archive: " & objItem.Archive
      WScript.Echo "Caption: " & objItem.Caption
      WScript.Echo "Compressed: " & objItem.Compressed
      WScript.Echo "CompressionMethod: " & objItem.CompressionMethod
      WScript.Echo "CreationClassName: " & objItem.CreationClassName
      WScript.Echo "CreationDate: " & WMIDateStringToDate(objItem.CreationDate)
      WScript.Echo "CSCreationClassName: " & objItem.CSCreationClassName
      WScript.Echo "CSName: " & objItem.CSName
      WScript.Echo "Description: " & objItem.Description
      WScript.Echo "Drive: " & objItem.Drive
      WScript.Echo "EightDotThreeFileName: " & objItem.EightDotThreeFileName
      WScript.Echo "Encrypted: " & objItem.Encrypted
      WScript.Echo "EncryptionMethod: " & objItem.EncryptionMethod
      WScript.Echo "Extension: " & objItem.Extension
      WScript.Echo "FileName: " & objItem.FileName
      WScript.Echo "FileSize: " & objItem.FileSize
      WScript.Echo "FileType: " & objItem.FileType
      WScript.Echo "FSCreationClassName: " & objItem.FSCreationClassName
      WScript.Echo "FSName: " & objItem.FSName
      WScript.Echo "Hidden: " & objItem.Hidden
      WScript.Echo "InstallDate: " & WMIDateStringToDate(objItem.InstallDate)
      WScript.Echo "InUseCount: " & objItem.InUseCount
      WScript.Echo "LastAccessed: " & WMIDateStringToDate(objItem.LastAccessed)
      WScript.Echo "LastModified: " & WMIDateStringToDate(objItem.LastModified)
      WScript.Echo "Manufacturer: " & objItem.Manufacturer
      WScript.Echo "Name: " & objItem.Name
      WScript.Echo "Path: " & objItem.Path
      WScript.Echo "Readable: " & objItem.Readable
      WScript.Echo "Status: " & objItem.Status
      WScript.Echo "System: " & objItem.System
      WScript.Echo "Version: " & objItem.Version
      WScript.Echo "Writeable: " & objItem.Writeable
      WScript.Echo
   Next
Next

Open in new window

0
 
isnoend2001Author Commented:
Thanks guys
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now