Ach Mensch bin ich doof! Du wählst nur das Projekt aus, oder?
Das heißt, das Startverzeichnis ist eigentlich "E:\Daten\20%projekt%" und dann wird daran noch "\Dokument-Explorer\Berechnungen" angehängt. Falls das stimmt, probiere es mal hiermit.
Spoiler anzeigen
AutoIt
#include <File.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Global $iWidth=800,$iHeight=900,$sStartFolder="E:\Daten\",$sTargetFolder="F:\Dokumente\Aussendienst\",$arFileListViewItems[0]
$hGui=GUICreate("Datensicherung von PANASONIC auf SERVER",$iWidth,$iHeight)
$iStartFolderLabel=GUICtrlCreateLabel("Startordner: ",5,7,55,20)
$iStartFolderInput=GUICtrlCreateInput($sStartFolder,65,5,$iWidth-100-40,20)
GUICtrlSetState(-1,$GUI_DISABLE)
$iStartFolderButton=GUICtrlCreateButton("...",$iWidth-70,2,30,25)
GUICtrlSetState(-1,$GUI_DISABLE)
$iTargetFolderLabel=GUICtrlCreateLabel("Zielordner: ",5,$iHeight-22-30,55,20)
$iTargetFolderInput=GUICtrlCreateInput($sTargetFolder,65,$iHeight-25-30,$iWidth-65-40,20)
GUICtrlSetState(-1,$GUI_DISABLE)
$iStartFolderGo=GUICtrlCreateButton("List",$iWidth-35,2,30,25)
$iFileListView=GUICtrlCreateListView("File",5,30,$iWidth-10,$iHeight-30-85,-1,BitOR($LVS_EX_CHECKBOXES,$LVS_EX_FULLROWSELECT,$WS_EX_CLIENTEDGE))
_GUICtrlListView_SetColumnWidth($iFileListView,0,$iWidth-35)
$iTargetFolderButton=GUICtrlCreateButton("...",$iWidth-35,$iHeight-27-30,30,25)
GUICtrlSetState(-1,$GUI_DISABLE)
$iCopyProgress=GUICtrlCreateProgress(5,$iHeight-25,$iWidth-165,20)
$iCopyStartButton=GUICtrlCreateButton("Start",$iWidth-155,$iHeight-25,75,20)
$iCopyStopButton=GUICtrlCreateButton("Stop",$iWidth-80,$iHeight-25,75,20)
;$iDelButton=GUICtrlCreateButton("Löschen",$iWidth-155,$iHeight-25,75,20)
GUICtrlSetState($iCopyStopButton,$GUI_DISABLE)
GUISetState()
_ListFiles(GUICtrlRead($iStartFolderInput))
While 1
$iMsg=GUIGetMsg()
Switch $iMsg
case -3
exit
case $iStartFolderButton
$sFolder=FileSelectFolder("Wähle Start Ordner","",0,$sStartFolder,$hGui)
If $sFolder<>"" Then GUICtrlSetData($iStartFolderInput,$sFolder)
_ListFiles(GUICtrlRead($iStartFolderInput))
case $iStartFolderGo
_ListFiles(GUICtrlRead($iStartFolderInput))
case $iCopyStartButton
_MoveDir()
case $iTargetFolderButton
$sFolder=FileSelectFolder("Wähle Ziel Ordner","",0,$sTargetFolder,$hGui)
If $sFolder<>"" Then GUICtrlSetData($iTargetFolderInput,$sFolder)
EndSwitch
WEnd
Func _ListFiles($sPath)
If Not FileExists(GUICtrlRead($iStartFolderInput)) Then Return MsgBox(0, "Titel", "Das Start-Verzeichnis existiert nicht!")
_GUICtrlListView_DeleteAllItems($iFileListView)
local $arFiles=_FileListToArray($sPath,"*",$FLTA_FOLDERS,true)
ReDim $arFileListViewItems[UBound($arFiles)-1]
for $i=1 to UBound($arFiles)-1 step 1
$arFileListViewItems[$i-1]=GUICtrlCreateListViewItem($arFiles[$i],$iFileListView)
next
EndFunc
Func _MoveDir()
;GUICtrlSetState($iStartFolderInput,$GUI_DISABLE)
;GUICtrlSetState($iStartFolderButton,$GUI_DISABLE)
GUICtrlSetState($iStartFolderGo,$GUI_DISABLE)
;GUICtrlSetState($iTargetFolderInput,$GUI_DISABLE)
;GUICtrlSetState($iTargetFolderButton,$GUI_DISABLE)
GUICtrlSetState($iCopyStartButton,$GUI_DISABLE)
GUICtrlSetState($iCopyStopButton,$GUI_ENABLE)
;GUICtrlSetState($iDelButton,$GUI_ENABLE)
local $arMoveDir[_GUICtrlListView_GetItemCount($iFileListView)][2],$iCount=0
for $i=0 to _GUICtrlListView_GetItemCount($iFileListView)-1 step 1
If _GUICtrlListView_GetItemChecked($iFileListView,$i) Then
$arMoveDir[$iCount][0]=_GUICtrlListView_GetItemText($iFileListView,$i,0)
$arMoveDir[$iCount][1]=$i
$iCount+=1
Else
GUICtrlSetBkColor($arFileListViewItems[$i],0xFFFF00)
EndIf
next
ReDim $arMoveDir[$iCount][2]
GUICtrlSetData($iCopyProgress,0)
local $iTargetFolder=GUICtrlRead($iTargetFolderInput)
$aSplit = StringSplit($sStartFolder, "\")
If @error Then Return MsgBox(0, "Titel", "Kein passendes Startverzeichnis ausgewählt!")
Local $sProject = $aSplit[$aSplit[0]]
If StringLen($sProject) <= 2 Then Return MsgBox(0, "Titel", "Projektname zu kurz!")
$iTargetFolder = $iTargetFolder & "\" & StringTrimLeft($sProject, 2) & "\Dokument-Explorer\Berechnungen"
local $iPercent=0
for $i=0 to UBound($arMoveDir)-1 step 1
If Int($i/UBound($arMoveDir)*100)<>$iPercent Then
$iPercent=Int($i/UBound($arMoveDir)*100)
GUICtrlSetData($iCopyProgress,$iPercent)
EndIf
local $arFile=StringSplit($arMoveDir[$i][0],"\",1+2)
local $sFilename=$arFile[UBound($arFile)-1]
If DirCopy($arMoveDir[$i][0],$iTargetFolder&"\"&$sFilename,BitOR(1,8)) Then
GUICtrlSetBkColor($arFileListViewItems[$arMoveDir[$i][1]],0x00FF00)
Else
GUICtrlSetBkColor($arFileListViewItems[$arMoveDir[$i][1]],0xFF0000)
EndIf
Switch GUIGetMsg()
case -3
exit
case $iCopyStopButton
ExitLoop
EndSwitch
next
GUICtrlSetData($iCopyProgress,100)
;GUICtrlSetState($iStartFolderInput,$GUI_ENABLE)
;GUICtrlSetState($iStartFolderButton,$GUI_ENABLE)
GUICtrlSetState($iStartFolderGo,$GUI_ENABLE)
;GUICtrlSetState($iTargetFolderInput,$GUI_ENABLE)
;GUICtrlSetState($iTargetFolderButton,$GUI_ENABLE)
GUICtrlSetState($iCopyStartButton,$GUI_ENABLE)
GUICtrlSetState($iCopyStopButton,$GUI_DISABLE)
EndFunc
Alles anzeigen