Nochmal zum Thema
CreateObject("Scripting.FileSystemObject")
Ich möchte folgenden Ordner mit Unterordner "C:\Mykis\Fungi" erstellen, um später Dateien in diesen Ordner zu kopieren:
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CreateFolder ("C:\Mykis\Fungi")
Set FSO = Nothing
Es kommt aber die Meldung "Pfad nicht gefunden". Irgend was mache ich falsch!
Beste Grüße
Frank
Hi,
1.
gibt es den übergeordneten Ordner "MyKis" bereits?
Wenn nein hilft es vielleicht, erst den anzulegen und dann den Unterordner.
2. Ansonsten probier mal den Befehl: MkDir
siehe Hilfe:
MkDir-Anweisung (Beispiel)
In diesem Beispiel wird die MkDir-Anweisung verwendet, um ein Verzeichnis oder einen Ordner zu erstellen. Wird kein Laufwerk angegeben, so wird das neue Verzeichnis bzw. der neue Ordner auf dem aktuellen Laufwerk erstellt.
MkDir "VERZ1" ' Verzeichnis/Ordner neu erstellen.
Harald
Hi Harald,
das funktioniert erstmal. Scheint einfach, aber als Anfänger...
Was muß ich an den Befehl MKDir "C:\Mykis" noch anhängen, damit er bei einen eventuellen zweiten Aufruf keine Fehlermeldung bringt, dass der Ordner schon da ist.
Frank
Hallo,
prüfe VOR dem Aufruf (mit DIR() z. B.) , ob es das/die Verzeichnis(se) schon gibt oder nicht...
Vielen Dank ihr Beiden,
meine Vorbereitung zur Datensicherung sieht jetzt so aus und funktioniert!
If Dir(laufwerk & "\" & NameArchivRoot & "\" & NameArchivVerz & "\" & publ_ArtgruppeSysName & "\*.*") = "" Then
MkDir laufwerk & "\" & NameArchivRoot
MkDir laufwerk & "\" & NameArchivRoot & "\" & NameArchivVerz
MkDir laufwerk & "\" & NameArchivRoot & "\" & NameArchivVerz & "\" & publ_ArtgruppeSysName
End If
Guten Rutsch
Frank
Hi,
ist auszuschließen, dass es den untersten Ordner noch NICHT gibt, dass es aber die beiden darüber liegenden Ordner gibt?
Ansonsten würde ich die Dir-Prüfung bei jedem Ordner machen.
Harald
Danke für diesen Hinweis.
Ist zwar unwahrscheinlich, aber ich werde es noch einbauen.
Frank
If Dir(laufwerk & "\" & NameArchivRoot & "\" & NameArchivVerz & "\" & publ_ArtgruppeSysName & "\*.*") = "" Then
Das ist eine Prüfung auf Dateien (mindestens eine), die in dem dritten Unterordner liegen. Wenn diese Prüfung True ergibt, heißt das, die Ordner sind vorhanden (sonst Fehler!), aber es liegen keine Dateien drin.
Eine Prüfung auf ein Verzeichnis würde etwa so aussehen:
If Dir(Verzeichnispfad, vbDirectory) = vbNullstring Then
MakeSureDirectoryPathExists Verzeichnispfad
End If
Siehe dazu MakeSureDirectoryPathExists (http://www.vbarchiv.net/api/api_makesuredirectorypathexists.html)
MfGA
ebs
Hallo ebs,
diese Prüfung auf ein Verzeichnis ist natürlich komfortabler, berücksichtigt auch einzelne fehlende Ordner und überschreibt auch alte Daten, was für mich wichtig ist.
Vielen Dank und guten Rutsch
Frank