Re: RenameFile(oldFile, newFile)
Zitat:
|
Re: RenameFile(oldFile, newFile)
Was ist nun bei meiner "Umbenennungs"-Prozedur falsch?
Wieso funktioniert sie nicht? |
Re: RenameFile(oldFile, newFile)
Hallo Tim,
bist Du Dir sicher, das keine Datei in dem Ordner geöffnet ist? meine TestMethode funktioniert bei mir:
Delphi-Quellcode:
oder so
procedure TForm1.Button1Click(Sender: TObject);
begin renameFile('e:\ren Test','e:\ren Test2'); end;
Delphi-Quellcode:
Kannst Du mal zu Kontrolle ausgeben welche Verzeichnisse du umbennen möchtest.
procedure FileRename(oldFileName,newFileName:String);
var anyFile : File; begin AssignFile(anyFile,oldFileName); rename(anyFile,newFileName); end; Ich denke da liegt Dein Fehler begraben. Grüße Klaus |
Re: RenameFile(oldFile, newFile)
Liste der Anhänge anzeigen (Anzahl: 1)
Der Ordner war am Zeitpunkt der Umbenennung völlig leer.
Ich habe die komplette Unit3 angehängt, damit du (wenn du Lust dazu hast) darin rumstöbern kannst. |
Re: RenameFile(oldFile, newFile)
Hallo Tim,
Delphi-Quellcode:
setze doch mal einen Breakpoint an der markierten Stelle
procedure TForm3.EditBuchClick(Sender: TObject);
var f, g, s, t : String; begin s := ListBox1.Items[ListBox1.ItemIndex]; t := InputBox('Buch ändern', s, ''); if t <> '' then if MessageDlg(s + ' zu ' + t + ' ändern?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin // <-- hier Breakpoint setzen f := 'C:\Program Files\Vokabeltrainer XXL\' + t; g := 'C:\Program Files\Vokabeltrainer XXL\' + s; RenameFile(g, f); Form3.FormActivate(Form3); end; end; und lass Dir die Variablen f und g einmal ausgeben. Variablen anschauen geht wenn Du die Variable markierst und dann crtl-F5 drückst. Die Variable wird dann der Watchlist hinzugefügt. In der Watchlist werden die Werte der Variablen ausgegeben. Ich bin mal gespannt ob f und g die Werte haben, die Du Dir so vorstellst. Was vielleicht auch nicht schlecht wäre, Deinen Sourcecode ein wenig mehr zu kommentieren und den ganzen Listboxen und Buttons Namen zu geben unter den man sich auch was vorstellen kann. So ist es so ziehmlich unmöglich Dein Programm zu verstehen. Grüße Klaus |
Re: RenameFile(oldFile, newFile)
Danke. Ich probier's gleich aus.
|
Re: RenameFile(oldFile, newFile)
Etwas sehr merkwürdiges ist passiert:
Ich habe zuerst, ohne mein Programm zu ändern (nicht einmal Kommentare zu schreiben), mein Program getestet und es funktionierte NICHT. Dann habe ich auf den Vorschlag von Klaus Kommentare geschreiben und den Breakpoint gesetzt. :arrow: Das Programm hielt nicht an. Ich habe dann den Breakpoint entfernt und das Programm noch einmal laufen lassen. Die Umbenennung hat funktioniert! Sowie bei einem leeren als auch bei einem Ordner mit mehreren Dateien! :angel: |
Re: RenameFile(oldFile, newFile)
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist die funktionierende Version.
Ich habe mehr Kommententare hinzugefügt. - Ist das jetzt verständlicher? Danke für eure Hilfe! :thumb: :wink: :zwinker: :dp: :cheers: :dp: |
Re: RenameFile(oldFile, newFile)
ich würde das ganze projekt oder zumindest die *.dfm-Datei mit zur *.pas-Datei posten beim nächsten Mal. Dann kann man auch sehen wie du das Formular aufgebaut hast.
Beim Überfliegen ist mir aufgefallen, dass du den Pfad 'C:\Program Files\Vokabeltrainer XXL\...' immer wieder aufrufst. Du solltets entweder eine Konstante per const definieren und diese aufrufen oder den Pfad deines Programms zur Laufzeit auslesen (zum Beispiel im FormCreate) und dieses in einer Variable festhalten, auf deren Inhalt du dann nach belieben zugreifen kannst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz