1 Datei in mehrere Verzeichnisse kopieren

Hallo,

ich habe folgendes Problem: Ich möchte eine Datei in jeden Ordner einer Verzeichnisstruktur kopieren.
Da die Namen und die Anzahl der Verzeichnisse variabel sind, muss das Script in der Lage sein, diese Datei in jedes gefundene Verzeichnis zu kopieren.

Kann mir jemand helfen?

Gruß
Marco

Hallo, Marco!

ich habe folgendes Problem: Ich möchte eine Datei in jeden
Ordner einer Verzeichnisstruktur kopieren.
Da die Namen und die Anzahl der Verzeichnisse variabel sind,
muss das Script in der Lage sein, diese Datei in jedes
gefundene Verzeichnis zu kopieren.

Mal so ganz grob:

Sub KopiereDateiInAlleVerzeichnisse(pstrDatei as String, pstrQuellVerz as String, pstrVerz as String)
 ' Der Einfachheit halber: Beim Kopieren brauche ich den 
 ' Dateinamen ein mal mit, ein mal ohne Pfad
 ' Daher hier die Trennung bei der Übergabe
 ' Kannst aber auch Datei und Pfad übergeben und den Dateinamen
 ' hier separieren.
 dim astrVerz() as string
 dim strDir as string
 dim lngAnz as string

 ' zuerst alle Verzeichnisse in Array einlesen; 
 ' dabei zuerst die Anzahl bestimmen:
 lngAnz=0
 strDir = Dir(pstrVerz &"\*.\*", vbDirectory)
 Do While strDir ""
 if strDir "." and strDir".." then
 lngAnz=lngAnz+1
 endif
 strDir=Dir
 loop
 ' Array redimensionieren und füllen
 Redim astrVerz(lngAnz)
 lngAnz=0
 strDir = Dir(pstrVerz &"\*.\*", vbDirectory)
 Do While strDir ""
 if strDir "." and strDir".." then
 lngAnz=lngAnz+1
 astrVerz(lngAnz)=pstrVerz & "\"& strDir
 ' Auderdem schon mal Datei in dieses Verzeichnis kopieren:
 FileCopy pstrQuelle &"\"& pstrDatei, pstrVerz & "\"& strDir &"\"& pstrDatei
 endif
 strDir=Dir
 loop
 ' Jetzt rekursiv alle Unterverzeichnisse durchgehen
 for lngAnz=1 to UBound(astrVerz)
 call KopiereDateiInAlleVerzeichnisse(pstrDatei, pstrQuellVerz, astrVerz(lngAnz))
 next lngAnz
End Sub

Wie immer ungetestet/uncompiliert.

Das Einlesen der Verzeichnisse in ein Array ist notwendig, weil sonst der wiederholte Dir-Befehl nicht funktioniert, wenn zwischendrin ein anderer (selbst in einer anderen Prozedur) Dir-Befehl aufgerufen wurde.

Gruß, Manfred