Solved

Find the latest saved file

Posted on 2003-11-19
2
268 Views
Last Modified: 2010-05-01
I would like to find the latest saved file in directory c:\test\ and compare if the same file exist in directory c:\test\old\.
0
Comment
Question by:mikael_lu
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 86

Accepted Solution

by:
Mike Tomlinson earned 250 total points
ID: 9780334
Create a new project and add two textboxes and a commandbutton.

Regards,

Idle_Mind

' ************************* Code for Form1 *************************
Option Explicit

Private Sub Form_Load()
    Text1.Text = "c:\test\"
    Text2.Text = "c:\test\old\"
    Command1.Caption = "Check Files"
End Sub

Private Sub Command1_Click()
    Dim newestFile As String
    Dim newestDate As Date
    Dim curDate As Date
    Dim files As Collection
    Dim file As Variant
   
    Set files = getFilesInDirectory(Text1.Text, "*")
    If files.Count > 0 Then
        newestFile = files.Item(1)
        newestDate = FileDateTime(newestFile)
        For Each file In files
            curDate = FileDateTime(file)
            If curDate > newestDate Then
                newestDate = curDate
                newestFile = file
            End If
        Next file
        If Dir(Text2.Text, vbDirectory) <> "" Then
            If Right(Text2.Text, 1) <> "\" Then
                Text2.Text = Text2.Text & "\"
            End If
            If Dir(Text2.Text & newestFile) <> "" Then
                MsgBox "File: """ & newestFile & """ Exists in """ & Text2.Text & """"
            Else
                MsgBox "File: """ & newestFile & """ Does Not Exist in """ & Text2.Text & """"
            End If
        Else
            MsgBox "Target Directory does not exist"
        End If
    Else
        MsgBox "Directory is Empty"
    End If
End Sub

Private Function getFilesInDirectory(targetDirectory As String, filePattern As String) As Collection
    Dim fileCollection As Collection
    Dim curFile As String
   
    On Error GoTo noSuchDirectory
   
    Set fileCollection = New Collection
    ChDir targetDirectory
   
    On Error GoTo 0
    curFile = Dir(filePattern)
    Do Until curFile = ""
        fileCollection.Add curFile, curFile
        curFile = Dir()
    Loop
    Set getFilesInDirectory = fileCollection
    Exit Function
   
noSuchDirectory:
    MsgBox "Invalid Directory: " & targetDirectory
    Set getFilesInDirectory = fileCollection
End Function
0
 

Author Comment

by:mikael_lu
ID: 9785083
Hi Idle_Mind!

Thanks for a very fine solution of my problem, I'm very happy.

Regards
Mikael_lu
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

728 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