Dircopy mit status leiste

  • hey,

    mache einen dircopy das verzeichnis ist gross daher dauert es lange,
    wollte zumindestens etwas anzeigen damit man sieht das etwas passiert..

    eine idee oder vorschlag wie man das lösen könnte?

    Danke

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    Einmal editiert, zuletzt von subzero007 (15. März 2010 um 15:15)

  • Ich hab das mal so gemacht:

    DirGetSize die gesamte benötigte Größe berechnen.
    Dann nimmst du von jedem Ding das du kopierst auch den verwendeten Festplattenspeicher.
    Dann dividierst du den Speicher den das Ding braucht durch den gesamten Speicher und rechnest * 100 = Fortschrittsprozent..

    BSP:
    Gesamtspeicher = 10 MB
    1 Item = 1 MB

    1 MB / 10 MB = 1/10 => 1 / 10 * 100 = 100 / 10 = 10 %

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Kopierer

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

    $PathWhereToCopy = "..."
    $sSize = DirGetSize($PathToCopy)

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

    $aFiles = _FileListRecursiv($PathToCopy)

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

    ProgressOn("Kopierer..")

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

    For $i = 0 To UBound($aFiles) -1
    FileCopy($aFiles[$i],$PathWhereToCopy & $aFiles[$i])
    $sTempSize = FileGetSize($aFiles[$i])
    $perc += $sTempSize / $sSize * 100
    ProgressSet($perc,$perc & " % fertig!")
    Next

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

    ProgressOff()

    [/autoit]

    Ich hoff das stimmt so, wenn Fehler drin sind einfach melden, ist einfoch so quick'n' dirty geschribn. .

  • Du kannst vor die Dircopy funktion eine Nachricht setzen (Tooltip, Gui oder sowas) und dort beschreiben was gemacht wird (copy dir x nach dir y).
    Während der Dircopy Funktion gibt es wohl keine Möglichkeit den Status abzufragen, dafür müsstest du eine eigene Dircopy (über Filecopy z.B.) schreiben.

    Einmal editiert, zuletzt von nuts (15. März 2010 um 13:55)

  • der tipp war gut...

    so würde ich es einblenden wie blende ich es aus?

    [autoit]

    ToolTip("Dies ist ein Tool-Tip", 0, 0)
    Sleep(2000)#Region --- CodeWizard generated code Start ---
    ;ToolTip features: Text=Yes, X Coordinate=Default, Y Coordinate=Default, Title=Yes, No icon, Balloon Tip
    If Not IsDeclared("sToolTipAnswer") Then Local $sToolTipAnswer
    $sToolTipAnswer = ToolTip("c:\ nach test",Default,Default,"dircopy",0,1)
    #EndRegion --- CodeWizard generated code End ---

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

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • das habe ich nicht verstanden..???

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • So funktioniert soweit...
    habe es in eine funktion eingebaut...
    wie kann ich das fenster schliessen wenn die funktion beendet ist?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • dieses ..


    [autoit]

    If Not IsDeclared("sToolTipAnswer") Then Local $sToolTipAnswer
    $sToolTipAnswer = ToolTip("von c:\ nach d:\",Default,Default,"Kopier vorgang läuft",0,1)

    [/autoit]

    wenn die funtion zu ende ist schliesst sich das fenster nicht eine idee?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Den Tooltip?
    Möchtest du den nuts bissle ärgern? :P

    Spoiler anzeigen
    [autoit]

    $sToolTipAnswer = ToolTip("von c:\ nach d:\",Default,Default,"Kopier vorgang läuft",0,1)
    sleep(2000)
    Tooltip("")

    [/autoit]
  • Nein um gottes willen wollte dich nicht ärgern ..
    danke es funtioniert....

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."