Unterordner einbinden - HELP

  • Hallo zusammen!

    Paule hat mir beim erstellen dieses Scripts sehr geholfen.
    Es überprüft ob eine Datei vom Ordner (C:\testrename\) schon im Ordner (C:\testrename2\) vorhanden ist und wenn ja, wird eine Versionsnummer
    an die Datei gehängt. Funktioniert alles super! Danke nochmals an Paule.

    Nun möchte ich aber das er nicht nur den Ordner C:\testrename2\ überprüft ,sondern auch alle Unterordner von C:\testrename2\.
    Ich hab da schon einiges gefunden, hatte aber meine Mühe damit. Achtung es muss Wildcards zulassen. Kann mir da jemand behilflich sein?

    Script:

    [autoit][/autoit][autoit][/autoit][autoit]

    #include <Array.au3>
    #include <File.au3>

    [/autoit][autoit][/autoit][autoit]

    $ordner = "C:\testrename"
    $Dateien = _FileListToArray($ordner, "*.txt", 1)
    $DesOrdner = "C:\testrename2\"

    [/autoit][autoit][/autoit][autoit]

    For $i = 1 to UBound($Dateien)-1 ; zähle die Dateien vom Array $Dateien
    $sFile = ($Dateien[$i]) ; Jeder Dateinamen ohne Pfad -> z.B. test.txt
    Local $iI=1, $aTmp ; Variablen werden definiert
    $aTmp = StringSplit($sFile, ".") ; Dateinamen wird gefiltert (ohne Extension)
    $sFileName = $DesOrdner&StringTrimRight($sFile, StringLen($aTmp[$aTmp[0]])+1) ; Ergebnis = Dateinamen ohne Erweiterung
    $sFileExt = "." & $aTmp[$aTmp[0]]
    ConsoleWrite($sFile)
    If FileExists($sFile) Then
    While FileExists($sFileName & "-" & $iI & $sFileExt)
    $iI +=1
    WEnd
    For $iJ=$iI To 1 Step -1
    FileMove($sFileName & "-" & $iJ & $sFileExt,$sFileName & "-" & $iJ+1 & $sFileExt)
    Next
    FileMove($sFile ,$sFileName & "-1" & $sFileExt)
    EndIf
    FileMove($sFile,$DesOrdner)
    Next

    [/autoit]

    Ich danke euch schon im Voraus!

    Gruss wk2x

    Einmal editiert, zuletzt von wk2x (11. Dezember 2008 um 16:22)

  • Danke schon mal für die Antwort!

    Es ist so, dass es eine Datei gibt im C:\testrename\, jetzt soll überprüft werden ob diese Datei schon im C:\testrename2\* schon vorhanden ist.
    Wenn ja, wird diese verschoben und mit einer Zahl versehen. Dies funktioniert soweit. Nun soll er aber nicht nur den C:\testrename2\ nach
    vorhandenen Dateien überprüfen, sondern auch alle Unterordner von C:\testrename2 miteinbeziehen.
    Sprich, ist im Ordner C:\testrename2\ja\test.txt und ich möchte C:\testrename\test.txt verschieben, bzw. versionieren, soll er bemerken das diese Datei schon im Ordner C:\testrename2 vorhanden ist.

    HELP

    • Offizieller Beitrag

    @Pee: Interessantes Programm. Kannte ich noch gar nicht. Denke aber, dass das hier nicht weiterhilft, weil die Dateien ja auch in den anderen Verzeichnissen vorhanden sein können.

    @wk2x: Ok, mal sehen, ob ich das jetzt verstanden habe: Eine Datei z.B. "C:\testrename\test.txt" soll in der kompletten Verzeichnisstruktur von "C:\testrename2\" gesucht werden und im Falle des Nichtvorhandenseins dorthin kopiert werden. Findet das Script hingegen ein Duplikat z.B. in "C:\testrename2\bla\bla\test.txt", was soll dann mit der zu kopierenden Datei geschehen?
    Soll die Datei dann (weil sie direkt in "C:\testrename\" lag) ebenfalls in den "Hauptpfad" ("C:\testrename2\") kopiert werden oder in das Unterverzeichnis, in dem das Duplikat gefunden wurde.
    Und welche Datei (neue oder alte) soll im doppelten Fall umbenannt werden?