Avatar billede martin_moth Mester
09. december 2003 - 22:35 Der er 13 kommentarer og
1 løsning

Undersøg om sti findes

Jeg vil gerne sætte

  Dir1.Path = "\\servernavn\forlder1\folder2"


Men jeg får fejl hvis sernveren er nede - er den det, skal den sætte

  Dir1.Path = "C:\"

Hvordan tjekker jeg nemt, om \\servernavn\forlder1\folder2 er "lovlig"?
Avatar billede martin_moth Mester
09. december 2003 - 22:41 #1
Jeg har lavet en on error, men den bliver ikke fyret af. Skal man gøre noget for at On Error Goto ... virker?
Avatar billede netpxg Nybegynder
09. december 2003 - 22:43 #2
Næh, det burde da virke.
Avatar billede martin_moth Mester
09. december 2003 - 22:49 #3
Private Sub Form_Load()
  On Error GoTo errHandler
  Dir1.Path = "\\streep\bredesager\GISKort\Foto"
  Exit Sub
errHandler:
  MsgBox "Drevet \\streep\bredesager\GISKort\Foto er ikke tilgængeligt"
  Dir1.Path = "c:\"
End Sub

errHandler bliver aldrig kørt, selvom streep er nede
Avatar billede bak Forsker
09. december 2003 - 22:58 #4
prøv lige denne lille funktion
Private Function PathExists(pname) As Boolean
'  Returns TRUE if the path exists
    Dim x As String
    On Error Resume Next
    x = GetAttr(pname) And 0
    If Err = 0 Then PathExists = True Else PathExists = False
End Function
Avatar billede martin_moth Mester
09. december 2003 - 23:01 #5
x = GetAttr(pname) And 0

? Prøv lige at forklar - er getattr en indbygget funktion, hvad gør den, og hvad betyder And 0?
Avatar billede martin_moth Mester
09. december 2003 - 23:04 #6
"Invalig procedure" på getattr()
Avatar billede martin_moth Mester
09. december 2003 - 23:04 #7
Jeg ville være tilfreds hvis bare on error goto virkede...
Avatar billede martin_moth Mester
09. december 2003 - 23:06 #8
Tools -> options > General : Break on unhandled errors
Avatar billede joern Nybegynder
10. december 2003 - 08:45 #9
Hej.

Endelig stiller Martin selv et spørgsmål, og så når jeg ikke at være med!

Jeg benytter følgende:

If Len(Dir(brandsti, vbDirectory)) > 0 Then
        filemp3.Path = brandsti
      Else
        X = MsgBox("Den sti der er angivet til depot for brænding eksisterer ikke.", 48, "Medd. fra 'opstart musikdatabase'.")
  End If

M.v.h.  Jørn
Avatar billede martin_moth Mester
10. december 2003 - 09:28 #10
joern: Tak alligevel. Jeg stiller normalt kun spørgsmål når jeg for travlt til selv at søge efter et svar, eller hvis det er tilpas kompliceret (der skal nu ikke så meget til ;o)

Jeg kender ikke til at bruge Dir("d:\", vbDirectory)) - hvad menes der med vbDirectory, hvad returnerer Dir hvis - eller hvis ikke - d:\ findes?
Avatar billede joern Nybegynder
10. december 2003 - 09:42 #11
Hej.

Den var lidt morsom!  Jeg bruger altid len(dir(.... for at tjekke at en mappe eller fil er tilstede.  Ved filer returneres filens navn (med versaler) men jeg ser nu, at ved en mappe returneres ascii(46) - punktum, når mappen findes.  Når en mappe ikke findes returneres ingenting - tom.
Men længden af et punktum er jo også større end nul :-)

M.v.h. Jørn
Avatar billede martin_moth Mester
10. december 2003 - 10:50 #12
Så blev vi så kloge :o)

Selvom jeg ikke forstår hvad vbDirectory er for en størrelse - men jeg kan jo læse lidt om Dir når jeg får tid. Tak for hjælpen - vil du have points?
Avatar billede joern Nybegynder
10. december 2003 - 11:49 #13
Hej Martin.

MyName = Dir(MyPath, vbDirectory)    ' Retrieve the first entry.

Det ser ud til at der vil blive returneret den første undermappe eller fil, hvis der ER nogen.

Point skal jeg selvfølgelig ikke have, har i øvrigt ikke brug for flere.

M.v.h.  Jørn
Avatar billede l3kris Nybegynder
03. februar 2004 - 16:48 #14
Hvad med:

dim objFso as FileSystemObject

Set objFso = CreateObject("Scripting.FileSystemObject")
if not objFso.FolderExists(Dir1.Path) then
  MsgBox Dir1.Path & " er ikke gyldig sti"
end if
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester