Solved

Find the latest saved file

Posted on 2003-11-19
2
260 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
2 Comments
 
LVL 85

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Vb.net 2008 2 56
VBA filters 2 51
Access Object Property from VBA Module in Excel 2010 2 28
vbModal 12 37
Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…

867 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now