Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Just discovered that you can't rely on the old Dir function to check if a
file exists or not and I thought it might be worth it to post this to this forum. I always used a function like this to test if a file exists: Function bFileExists3(ByVal sFile As String) As Boolean bFileExists3 = Len(Dir(sFile)) 0 End Function This is just no good, try: MsgBox bFileExists3(""), , Dir("") I get True as Dir("") gives me: 256 colours.htm When I make the function like this: Function bFileExists3(ByVal sFile As String) As Boolean bFileExists3 = Len(Dir(sFile)) 0 And Len(sFile) 0 End Function It will work in VBA, but not when I make an ActiveX dll in VB6. Strangely, the len function doesn't give zero. I have no public or private variables that could mess the function up. I have found 2 alternatives to check if a file exists or not, the first one is from Randy Birch's site. Both seem to work fine. Option Explicit Private Declare Function PathFileExists Lib "shlwapi" _ Alias "PathFileExistsA" _ (ByVal pszPath As String) As Long Function bFileExists(ByVal sPath As String) As Boolean 'Determines if a file exists. This function 'tests the validity of the file and path. It 'works only on the local file system or on a 'remote drive that has been mounted to a drive 'letter. ' 'It will return False for remote file paths 'that begin with the UNC names \\server 'or \\server\share. It will also return False 'if a mounted remote drive is out of service. ' 'Requires Version 4.71 and later of Shlwapi.dll bFileExists = PathFileExists(sPath) = 1 End Function Function bFileExists2(ByVal sFile As String) As Boolean Dim lAttr As Long On Error Resume Next lAttr = GetAttr(sFile) bFileExists2 = (Err.Number = 0) And ((lAttr And vbDirectory) = 0) On Error GoTo 0 End Function Will stick with the API one for now. RBS |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Is Excel reliable | Excel Discussion (Misc queries) | |||
Check who's using a file | Excel Programming | |||
Excel 97 VBA - CURDIR, not reliable | Excel Programming | |||
FAST, RELIABLE, LEGAL MONEY MAKING OPPORTUNITY | Excel Programming | |||
excel 2000 workbook.activate not 100% reliable with alt+tab | Excel Programming |