[AccessD] fso.DeleteFile Strange behaviour!?

Erwin Craps - IT Helps Erwin.Craps at ithelps.be
Wed Feb 11 04:07:07 CST 2004


Is this on the fileserver or on a local disk?
I would think this is somekind of cache problem.
Did you verify the datetime of the file in Windows Explorer?
Or tried to use the FileDateTime vb function, just to see what those are
reporting.
Do you set the fso to nothing after using it?

Just a few toughts...
Erwin

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of S D
Sent: Wednesday, February 11, 2004 9:01 AM
To: accessd
Subject: [AccessD] fso.DeleteFile Strange behaviour!?

Hi group,
 
I'm using FileSystemObject to delete a MDB file. 
After that I'm creating a new MDB.
Then i'm using the .DateCreated method to get the the info about when
the file was created. I checked this in the help: "Returns the date and
time that the specified file or folder was created. Read-only."
 
However the time it returns is the date\time combination of when I
created the DB for the first time.
 
EG: I'm starting the application at 8:00. I then show on screen the
date\time the temp (analyses) db was created, let's say that it was
created on 10 feb 2004 16:34:56. I then decide to create a new temp db.
I press the button and it deletes the file, creates a new one and adds
tables to it. Then I show the user the .DateCreated wich shows 8:00.
When I stay in the program and do the above at 8:15 the .DateCreated
method returns again 8:00!!! When I look in Explorer the DateCreated
column shows 8:00 and the DateModified shows 8:15?!!? QUA PASA. WHY is
the date created 8:00? I've checked in Explorer that the file is gone
after the deletefile statement.
 
Any ideas?
 
Sander
Here's part of my code:
FORM LOAD:
   'Create temporary database
   blnCreateTables = CreateTempDatabase(LOCATION_TEMP_DB, TEMP_DB_NAME)
   
   If blnCreateTables Then
      'Create tables
      Call CreateTables(LOCATION_TEMP_DB, TEMP_DB_NAME) ...
...
 
Function CreateTempDatabase(strPath As String, strDbName As String) As
Boolean On Error GoTo Err_CreateTempDatabase
   Dim dbDestination As DAO.Database
   Dim blnDbExists As Boolean
   Dim blnCreateDB As Boolean
   
   'Check if file exists
   blnDbExists = FileExists(strPath & strDbName)
   If blnDbExists Then
      Select Case MsgBox("Temporary database EXISTS. Do you want to
DELETE it and create a new one?", vbYesNo + vbInformation +
vbDefaultButton1, "Temporary database exists")
      Case vbYes
         'Delete file!
         If DeleteFile(strPath & strDbName) Then
            blnCreateDB = True
....
....
 
   'Create TEMPDB
   If blnCreateDB Then
      Set dbDestination = Workspaces(0).CreateDatabase(strPath &
strDbName, DB_LANG_GENERAL)
   End If
   'Set return value
   CreateTempDatabase = blnCreateDB
'errorhandling
END FUNCTION
 
 
 
Public Function DeleteFile(strFileName As String) As Boolean On Error
GoTo Err_DeleteFile
   Dim fso As FileSystemObject
   Dim file As String
   Dim strFileNameLDB As String
   
   file = strFileName ' change to match the file w/Path
   Set fso = New FileSystemObject
   'Set fso = CreateObject("Scripting.FileSystemObject")
   strFileNameLDB = "C:\Program Files\Switchdatabase\Temp_Db_Switch.ldb"
   If fso.FileExists(strFileName) Then
       fso.DeleteFile strFileName, True
       If fso.FileExists(strFileNameLDB) Then
         fso.DeleteFile strFileNameLDB, True
       End If
       'return value
       DeleteFile = True
   Else
      'return value
      DeleteFile = False
   End If
Exit_DeleteFile:
     Exit Function
     
Err_DeleteFile:
     MsgBox Err.Number & vbCrLf & _
     Err.Description & vbCrLf & _
     "Location: DeleteFile()"
     Resume Exit_DeleteFile
End Function

 
 
Function CheckNewFile(strFile As String) As String On Error GoTo
Err_CheckNewFile
   Dim objFileSys As FileSystemObject
   Dim objFile As file
   Dim strFileName As String
   Dim strNewDateCreated As String
   Set objFileSys = New FileSystemObject
   strFileName = strFile
   If objFileSys.FileExists(strFileName) Then
      Set objFile = objFileSys.GetFile(strFileName)
      'Get file created value
      With objFile
         strNewDateCreated = .DateCreated
      End With
   Else
      'File does NOT exist!
      strNewDateCreated = vbNullString
      GoTo Exit_CheckNewFile
   End If
   'Set returnvalue
   CheckNewFile = strNewDateCreated
....errrorhandling
End Function


---------------------------------
Do you Yahoo!?
Yahoo! Finance: Get your refund fast by filing online
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com


More information about the AccessD mailing list