Hallo,
ich hab in einem Programm ein TShellListview und möchte alle Ordner (viele) darin umbennenen (mit Zahlen). Ich hab jetzt folgende Procedure da stehen, und die funzt auch teilweise, aber manche Ordner lässt er einfach aus. Mit der Fehlermeldung (wenn ich FOF_SILENT rausmach):
| Zitat: |
| Datei kann nicht umbennant werden: Wählen sie nur eine Datei, oder verwenden sie den MS-DOS-Platzhalter (z.B. *.txt), um eine Gruppe von Dateien mit ähnlichen Namen umzubennen. |
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure TForm2.Button2Click(Sender: TObject); var i,nummer:integer; begin nummer:=StrToInt(edit1.Text); For i := 0 to ShellListview1.Items.Count-1 do begin sleep(10); RenameDir( shelllistview1.Folders[i].PathName, ExtractFileDir (shelllistview1.Folders[i].PathName) +'\'+IntToStr(nummer) ); inc(nummer); end; end;
procedure TForm2.RenameDir(DirFrom, DirTo: string); var shellinfo: TSHFileOpStruct; begin with shellinfo do begin Wnd := 0; wFunc := FO_RENAME; pFrom := PChar(DirFrom); pTo := PChar(DirTo); fFlags := FOF_FILESONLY or FOF_ALLOWUNDO or FOF_SILENT or FOF_NOCONFIRMATION; end; SHFileOperation(shellinfo); end; |
Ich hab schon "Suche" benutzt und gegooglt, und bin auf diese CreateDir und ForceDir Geschichte gekommen bei vielen Dateien, aber ich steig da nicht ganz durch.
Danke fürs lesen

hoffentlich kommt bald ne kompetente Antwort
Moderiert von
Tino: Titel geändert; Delphi-Tags hinzugefügt