Ordner erstellen funktioniert bei win 98 nicht

Hallo,
das funktioniert zwar bei XP, aber bei Win 98 legt der keinen neuen Ordner an … wer weiß denn warum?

VB6: >
Private Declare Function MakePath Lib „imagehlp.dll“ _
Alias „MakeSureDirectoryPathExists“ _
(ByVal lpPath As String) As Long

Private Sub Form_Load()
If Not Dir$(„C:\Vokabeln\lNr.txt“) vbNullString Then
Dim Result As Long
Dim myOrdner As String
myOrdner = „C:\Vokabeln“
Result = MakePath(myOrdner)

LG
Udo

Hallo, Udo!

das funktioniert zwar bei XP, aber bei Win 98 legt der keinen
neuen Ordner an … wer weiß denn warum?

Was funktioniert denn nicht?

Mögliche Fehler:

If Not Dir$(„C:\Vokabeln\lNr.txt“) vbNullString Then

Dir$(…) erzeugt Fehler, wenn das Verzeichnis nicht existiert. Bricht also die Routine ab, statt den gewünschten NullString zu liefern.

Trace das ganze mal durch: Kommst Du hier überhaupt hin?

myOrdner = „C:\Vokabeln“
Result = MakePath(myOrdner)

Versuche mal, direkt aus dem Direktfenster ein ?MakePath(„C:\Vokabeln“) aufzurufen, und schau, was rauskommt. Wenn das funktioniert, ruf doch pauschal das MakePath auf. Wird auch nicht langsamer sein als die Überprüfung, ob das Verzeichnis existiert. Den dann ggf. auftretenden Fehler kannst Du ja mit Resume Next übergehen.

Gruß, Manfred

Hallo,
legt bei win 98 keine Ordner an!

Wie ichs auch drehe … legt er net an, schreibt wenn überhaupt ne meldung F.48, imagehlp.dll nicht vorhanden … bei XP keine Probleme, geht ohne Probleme…

VB6>
Private Declare Function MakePath Lib „imagehlp.dll“ _
Alias „MakeSureDirectoryPathExists“ _
(ByVal lpPath As String) As Long

On Error Resume Next
If Not Dir$(„C:\Vokabeln\lNr.txt“) vbNullString Then 'ist da?
Dim Result As Long
Dim myOrdner As String
myOrdner = „C:\Vokabeln“
Result = MakePath(myOrdner)

LG
Udo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo, Udo!

Wie ichs auch drehe … legt er net an, schreibt wenn
überhaupt ne meldung F.48, imagehlp.dll nicht vorhanden …
bei XP keine Probleme, geht ohne Probleme…

Na dann: Sorg dafür, dass die Imagehlp.dll im Systemverzeichnis liegt. Sonst wird das nichts, denn ohne DLL auch keine Funktion MakePath.

Ich weiß allerdings nicht, was die macht und ob die ohne weiteres mit W98 läuft. Angeblich sollte das der Fall sein. Also einfach vom XP-Rechner auf den 98-Rechner kopieren oder mal bei MS nachschauen…

Gruß, Manfred

Hi Udo,

das funktioniert zwar bei XP, aber bei Win 98 legt der keinen
neuen Ordner an … wer weiß denn warum?

VB6: >
Private Declare Function MakePath Lib „imagehlp.dll“ _
Alias „MakeSureDirectoryPathExists“ _
(ByVal lpPath As String) As Long

Private Sub Form_Load()
If Not Dir$(„C:\Vokabeln\lNr.txt“) vbNullString Then
Dim Result As Long
Dim myOrdner As String
myOrdner = „C:\Vokabeln“
Result = MakePath(myOrdner)

was ich nicht verstehe, warum so kompliziert?
was spricht gegen …

MkDir "C:\Vokabeln\"

? Das klappt auch mit Win98.

Gruß, Rainer

Super, funktioniert
ooooh, Vielen Dank

LG
Udo

Hi Udo,

was ich nicht verstehe, warum so kompliziert?
was spricht gegen …
MkDir „C:\Vokabeln“
? Das klappt auch mit Win98.

Das funktioniert bei MkDir „C:\gibtsNicht\gibtsAuchNicht\gibtsErstRechtNicht“ nicht. Hier musst Du sequentiell
MkDir „C:\gibtsNicht“
MkDir „C:\gibtsNicht\gibtsAuchNicht“
MkDir „C:\gibtsNicht\gibtsAuchNicht\gibtsErstRechtNicht“

aufrufen. Oder halt den gesamten Pfad von vorne iterierend, jeweils bis zum nächsten „“ (Achtung bei UNC-Pfaden!), an MkDir übergeben und bei Fehler „schon vorhanden“ einfach weitermachen als wäre nichts gewesen.

Nur zur Info. Und dann wird’s mit API MakePath wieder einfacher…

Gruß, Manfred

Hi Manfred,

Das funktioniert bei MkDir
„C:\gibtsNicht\gibtsAuchNicht\gibtsErstRechtNicht“ nicht. Hier
musst Du sequentiell
MkDir „C:\gibtsNicht“
MkDir „C:\gibtsNicht\gibtsAuchNicht“
MkDir „C:\gibtsNicht\gibtsAuchNicht\gibtsErstRechtNicht“

aufrufen. Oder halt den gesamten Pfad von vorne iterierend,
jeweils bis zum nächsten „“ (Achtung bei UNC-Pfaden!), an
MkDir übergeben und bei Fehler „schon vorhanden“ einfach
weitermachen als wäre nichts gewesen.

Nur zur Info. Und dann wird’s mit API MakePath wieder
einfacher…

ahhhh, deshalb.
Danke für die Info, das habe ich so noch nicht gebraucht.

Gruß, Rainer