Argh, havde lige noget andet i tankerne... Der er brians metode og der er:
I Project->References markerer du MicroSoft Scripting Runtime
I koden skriver du: Function FileExists(Filnavn As String) As Boolean Dim fso As New FileSystemObject FileExists = fso.FileExists(Filnavn, True) Set fso = Nothing End Function
Som alle returnerer \"noget\", selvom ingen af ovenstående er gyldige filnavne (nogle af dem er dog gyldige biblioteksnavne).
Dermed ikke sagt, at muligheden for at benytte ? og * wildcards er at foragte. Naturligvis ikke.
...og for at det hele ikke skal gå op i kritik af andres gode forslag, vil jeg ydmygst komme med et forslag, som ikke benytter \"eksterne\" objekter:
Function FilEksisterer(ByVal FilNavn As String) As Boolean Dim f As Integer f = FreeFile On Error GoTo FindesIkke Open FilNavn For Input As #f FilEksisterer = True Close #f Exit Function FindesIkke: FilEksisterer = False End Function
...og i samme øjeblik at jeg sendte min besked, kom jeg i tanke om at Open er alt for kluntet at bruge, når f.eks. GetAttr kan gøre det samme (nemlig checke eksistensen af en fil). Desuden vil Open kunne fejle, hvis en fil er låst for LÆSNING.
Nyt forslag:
Function FilEksistens(ByVal FilNavn As String) As Boolean On Error GoTo FindesIkke GetAttr FilNavn FilEksistens = True Exit Function FindesIkke: FilEksistens = False End Function
Public Declare Function OpenFile Lib \"kernel32\" Alias \"OpenFile\" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
Public Const OF_EXIST = &H4000
Public Type OFSTRUCT cBytes As Byte fFixedDisk As Byte nErrCode As Integer Reserved1 As Integer Reserved2 As Integer szPathName(OFS_MAXPATHNAME) As Byte End Type
Function FileExists(Path As String) As Boolean Dim ofs As OFSTRUCT Dim ret As Long If OpenFile(Path, ofs, OF_EXIST) Then FileExists = True End Function
Ok, der er nok én ting vi kan blive enige om, der er en zillion måder at checke om en fil eksisterer.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.