IIRC, your folders are named by Case Number and the Files by Case Number and Document name. While snb is correct, I believe that your system makes more sense for a legal office

about the dictionary, why would you not use the convenience of a spreadsheet, when you're already working with Excel?
Working with ~500 folders and ~500(X) Files is going to take significant time. A Dictionary is just soooooooo much faster than a Spreadsheet. Besides, the FileName already has the folder location built in. All you really need to know is: "Is this the latest file properly stored?" I realize you must also, for legal reasons, archive every document ever created, Thus I would place an Archives folder in each Case folder, since if you ever need the archives, it will be on a Case by Case issue.

In fact, that operation is so Time consuming that Time becomes of the essence, therefore I would place the Dictionary and the two functions that access it in a Class Module, since CMs run in their own Thread. Save the Dictionary to Excel when Terminating the Class.

As to Archiving files with the same name, I have set the following as a permanent sub for Excel
Private Sub Workbook_BeforeSave(''')
    Me.SaveCopyAs ("D:\!Backup\_Personal\Personal - " & CStr(CDbl(Now)) & ".xls")
End Sub
Where CStr(CDbl(Now)) is just a unique, (to the millisecond,) ID.
Neither Windows nor Unix cares if the ID is before or after the file Extension