
Also wie gesagt, bei 100 oder 200 Dateien funktioniert alles prima, nur bei volleren Ordnern nicht. Macke von Windows? Von PureBasic? Oder gar des Programmierers?
Code: Alles auswählen
Enumeration
#Hauptfenster
#Dateiliste
#ButtonLaden
#ButtonUmbenennen
#ButtonEnde
#Verlauf
EndEnumeration
Procedure.s NewName (Old.s)
For i=1 To Len (Old.s)-1
If Mid (Old.s, i, 1) =" " And Mid (Old.s, i+1, 1) =" "
; Zwei Leerzeichen?
Else
New.s+Mid (Old.s, i, 1)
EndIf
Next
New.s+Right (Old.s,1)
ProcedureReturn New.s
EndProcedure
OpenWindow (#Hauptfenster, 100, 100, 800, 650, "PDF Rename v0.1")
ListIconGadget (#Dateiliste, 10, 10, 600, 600, "alter Dateiname", 300)
AddGadgetColumn (#Dateiliste, 1, "neuer Dateiname", 1000)
ButtonGadget (#ButtonLaden, 620, 10, 170, 40, "Laden")
ButtonGadget (#ButtonUmbenennen, 620, 60, 170, 40, "Jetzt umbenennen")
ButtonGadget (#ButtonEnde, 620, 570, 170, 40, "Programm beenden")
ProgressBarGadget (#Verlauf, 620, 120, 170, 20, 0, 100)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #ButtonLaden
ClearGadgetItems (#Dateiliste)
File.s = OpenFileRequester("Bitte Dateien zum automatischen Umbenennen auswählen", GetCurrentDirectory (), "PDF (*.pdf)|*.pdf; *.PDF; *.Pdf", 0, #PB_Requester_MultiSelection)
zaehl=0
While File.s
If File.s<>NewName.s (File.s)
AddGadgetItem (#Dateiliste, -1, File.s+Chr(10)+NewName.s(File.s))
zaehl+1
EndIf
File.s=NextSelectedFileName ()
Wend
MessageRequester ("Information", "Es wurden "+Str(zaehl)+" Dateinamen gefunden, die 2 oder mehr Leerzeichen in Folge haben.")
Case #ButtonUmbenennen
SetGadgetAttribute (#Verlauf, #PB_ProgressBar_Maximum, CountGadgetItems (#Dateiliste))
If CountGadgetItems (#Dateiliste)
Wahl = MessageRequester ("Dateien umbenennen", "Soll der Vorgang jetzt ausgeführt werden?", #PB_MessageRequester_YesNo)
If Wahl = #PB_MessageRequester_Yes
Debug CountGadgetItems (#Dateiliste)
For zaehl=1 To CountGadgetItems (#Dateiliste)
Debug zaehl
File.s=GetGadgetItemText (#Dateiliste, zaehl-1, 0)
Debug File.s
Debug NewName (File.s)
If RenameFile (File.s, NewName (File.s))=0
Debug "Error"
EndIf
SetGadgetState (#Verlauf, zaehl)
Next
SetGadgetState (#Verlauf, 0)
MessageRequester ("Information", Str(zaehl-1)+" Dateien umbenannt.")
EndIf
ClearGadgetItems (#Dateiliste)
Else
MessageRequester ("Information", "Liste ist leer!")
EndIf
Case #ButtonEnde
ende=1
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow Or ende=1