io uso queste e vanno alla grande...



<pre>
'----------------------------------------------------------------------------------------
Private Const MAX_PATH = 260
Private Const INVALID_HANDLE_VALUE = -1

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" _
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
'----------------------------------------------------------------------------------------



Public Function EsisteFileConNomeComplesso(ByVal sFile As String) As Boolean
'creata da Max Etere: restiuisce true se il file esiste
Dim WFD As WIN32_FIND_DATA
Dim hFindFile As Long

hFindFile = FindFirstFile(sFile, WFD)

If hFindFile = INVALID_HANDLE_VALUE Then
EsisteFileConNomeComplesso = False
Else
EsisteFileConNomeComplesso = True

hFindFile = FindClose(hFindFile)
End If
End Function


Public Function FileExist(strFile As String) As Boolean
Dim myFreeFile As Integer
Dim nRes As Integer

myFreeFile = FreeFile
On Error Resume Next
Open strFile For Input As #myFreeFile
nRes = Err.Number
Close #myFreeFile

FileExist = (nRes = 0)
End Function

</pre>