Autor Thema: Überprüfen ob Ordner vorhanden  (Gelesen 3737 mal)

TomLudwig

  • Gast
Überprüfen ob Ordner vorhanden
« am: 16.02.04 - 12:37:17 »
Hallo,
ich möchte überprüfen ob ein Ordner auf der Festplatte vorhanden ist oder nicht. Das ich ihn ggf. erstellen kann.

Dies geht mit $Dir(Path, Value)

Wenn der Path nur ein Verzeichnis tief ist z.B. "C:\Test" ist es kein Problem,
aber bei z.B. "C:\Test\Test2" bekomme ich die Fehlermeldung "Path not found".

Was mache ich falsch?

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Überprüfen ob Ordner vorhanden
« Antwort #1 am: 16.02.04 - 13:00:07 »
verschachtelte Verzeichnispfade kannst du mir der API von Windows anlegen

Declare Function MakePath Lib "imagehlp.dll" Alias "MakeSureDirectoryPathExists" (Byval lpPath As String) As Long
(in die declaration kopieren )

Sub Click(Source As Button)
   Msgbox MakePath("d:\Test\test1\")
End Sub

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

TomLudwig

  • Gast
Re:Überprüfen ob Ordner vorhanden
« Antwort #2 am: 16.02.04 - 13:01:57 »
Ja gut, ich möchte aber erst überprüfen ob es das Verzeichnis nicht schon gibt. Und da bekomm ich bei $Dir die Fehlermeldung...

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Überprüfen ob Ordner vorhanden
« Antwort #3 am: 16.02.04 - 13:06:32 »
Auch kein Akt:

Function checkDir( path As String ) As Integer
   
   On Error Resume Next
   
   CheckDir = False
   
   Chdrive Left( path, 1 )
   Chdir path
   
   If Curdir = path Then          
      CheckDir = True
   End If
   
End Function

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

TomLudwig

  • Gast
Re:Überprüfen ob Ordner vorhanden
« Antwort #4 am: 16.02.04 - 13:31:47 »
Ich bekomm wieder die Fehlermeldung "Path not found" wenn ich mehr ein oder mehr unterverzeichnisse angebe...

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Überprüfen ob Ordner vorhanden
« Antwort #5 am: 16.02.04 - 13:39:25 »
komisch, bei mir geht es problemlos

« Letzte Änderung: 16.02.04 - 13:39:49 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

TomLudwig

  • Gast
Re:Überprüfen ob Ordner vorhanden
« Antwort #6 am: 16.02.04 - 14:13:26 »
ohh.... sorry ich hab den error-handler nicht mit übernommen.

Gut, aber ich hab jetzt das nächste Problem bei
MkDir "C:\Test\Test2"

bekomm ich wieder "Path not Found"

WARUM?
Er solls doch erstellen!

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Überprüfen ob Ordner vorhanden
« Antwort #7 am: 16.02.04 - 14:16:06 »
Hi,

es ist der gleiche Grund wie oben. Notes kann immer nur ein Verzeichnis erstellen.

Du musst erst das Stammverzeichnis erstellen und dann das Unterverzeichnis.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

TomLudwig

  • Gast
Re:Überprüfen ob Ordner vorhanden
« Antwort #8 am: 16.02.04 - 14:19:01 »
na danke, dann darf ich den kompletten string von vorn bis hinten durchgehen   und zerlegen anhand der "\"

ODER???

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Überprüfen ob Ordner vorhanden
« Antwort #9 am: 16.02.04 - 14:22:06 »
eigentlich hatte ich dir die Funktion zum erstellen des verzeichnisbaums doch schon gepostet. Mit dem Check testest du, ob das Verzeichnis da ist; wenn nicht mit MakePath anlegen.

...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

TomLudwig

  • Gast
Re:Überprüfen ob Ordner vorhanden
« Antwort #10 am: 16.02.04 - 15:55:24 »
MakePath legt nur einen Ordner ohne Unterordner an....

TomLudwig

  • Gast
Re:Überprüfen ob Ordner vorhanden
« Antwort #11 am: 16.02.04 - 15:56:40 »
Sorry, wenn das abschließende Zeichen ein "\" ist. Werden alle (Unter-)Ordner erstellt....

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Überprüfen ob Ordner vorhanden
« Antwort #12 am: 16.02.04 - 19:18:10 »
Hi,

ich hab vor einiger Zeit mal was aus dem Web gefischt.

Das Ganze besteht aus zwei Funktionen:

Zitat

Function IsValidDir(sPath As String) As Integer
   
   On Error Resume Next
   
   attr% = Getfileattr(sPath)
   If Err > 0 Then
      IsValidDir = 1
      Exit Function
   End If
   
   If (attr% And ATTR_DIRECTORY) Then IsValidDir = 0
   
End Function


Function MakeDir (sPath As String) As Integer
   
   Dim sNewPath As String
   Dim iPosi As Integer
   
   If Right$(sPath,1) <> "\" Then sPath = sPath & "\"
   MakeDir = 1
   
   On Error Goto MakeDirError
   
   Do
      iPosi = Instr(iPosi + 1, sPath, "\")
      If iPosi > 0 Then
         sNewPath = Left$(sPath, iPosi - 1)
         If IsValidDir(sNewPath) = 1 Then
            Mkdir sNewPath
         End If  'IsValidDir(sNewPath) = 0...
      End If  'iPosi > 0...
   Loop Until iPosi = 0
   
   MakeDir = 0
   Exit Function
   
MakeDirError:
   Messagebox "Error " & Str(Err) & " : " & Error$
   Resume Next
   
End Function



Beispiel:

Sub Click(Source As Button)
   
   If MakeDir("E:\Test\Test1") = 1 Then
      Messagebox "Fehler beim Anlegen des Verzeichnisses."
   Else
      Messagebox "Verzeichnis wurde erfolgreich angelegt."
   End If
   
End Sub

Das Ergebnis sieht dann so aus:

E:\
   |_ Test
          |__Test1

Du darfst der Funktion nur einen Pfad übergeben. Der darf keinen Dateinamen enthalten.

Ich hoffe das hilft dir weiter.


Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

TomLudwig

  • Gast
Re:Überprüfen ob Ordner vorhanden
« Antwort #13 am: 17.02.04 - 08:01:50 »
Ich habs einfach mit der Funktion von eknori gelöst und festgelegt, dass Benutzer ein abschliesendes "\" Zeichen eingeben müssen.

Und siehe da... es funktioniert....

Danke....

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz