Hej. Om du får en Run-time error så kan du använda ON ERROR, byt bara ut x mot error nr du får när filen inte finns. Citattecken runt strängar! Dir() funkar inte alltid som man vill, så här är en API variant (Om det inte bara va att du hade glömt "). Tack för alla svar. Nej, citattecken har jag inte glömt bort.. jag har använt VB i många år, men plötsligt funkar inte de vanliga funktionerna när jag nu gått över till WinXP (eller om det kan bero på nåt annat). <code> Om jag provar detta:Kolla om fil finns, i Win XP?
Ett problem med filhantering i Win XP och VB5.
Om jag skriver följande:
länk = c:\program\test.txt
test = Dir(länk)
...så får jag ett felmeddelande om filen inte finns. Koden kan alltså inte utföras om filen inte finns, men hur ska jag då veta om filen finns, när jag inte kan kontrollera om den finns, för om den inte finns, får jag ett felmeddelande?? (kryptiskt värre).
Nån som har nåt förslag??Sv: Kolla om fil finns, i Win XP?
<Code>
länk = c:\program\test.txt
On Error Resume Next
test = Dir(länk)
if Err = x then MsgBox "Filen finns inte"
</code>Sv: Kolla om fil finns, i Win XP?
<code>
länk = "c:\program\test.txt"
</code>Sv: Kolla om fil finns, i Win XP?
<code>
Private Const OFS_MAXPATHNAME = 128
Private Type OFSTRUCT
cBytes As Byte
fFixedDisk As Byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName(OFS_MAXPATHNAME) As Byte
End Type
Private typOfStruct As OFSTRUCT
Private Declare Function apiOpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As _
String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
Private Sub Command1_Click()
If Exists("c:\test.txt") Then MsgBox "File Exists"
End Sub
Public Function Exists(ByVal sFilename As String) As Boolean
On Error Resume Next
If Len(sFilename) > 0 Then
apiOpenFile sFilename, typOfStruct, OF_EXIST
Exists = typOfStruct.nErrCode <> 2
End If
End Function
</code> Sv: Kolla om fil finns, i Win XP?
Nåja, jag får prova era alternativ.
Tack.Sv: Kolla om fil finns, i Win XP?
test = len(dir(sPath))
if test = 0 then filen finns inte
</code>Sv: Kolla om fil finns, i Win XP?
sPath = "http://www.home.se/"
test = Len(Dir(sPath))
Så får jag felmeddelande i test = -raden. Den klarar att leta efter en fil som inte finns på disken, men en url klarar den inte att hantera tydligen.
Jag menar inte att dne ska kolla ifall sidan existerar eller så, men man tycker koden borde funka ändå. Det gjorde den i Win 98.
Skumt!