![]() |
MoveFile macht einfach nix(ohne Fehlermeldung)
Hallo,
habe mal wieder ein für mich unlösbares Problem: :wall: :( :cry: :gruebel: :kotz: Die Prozedur soll: - den Artist einer im OpenDialog1 ausgewählten Mp3Datei erkennen(klappt) - im selben Verzeichnis einen Ordner erstellen der so heisst wie der Artist (klappt auch) - die Datei in den Ordner verschieben (klappt nicht) Komischer weise klappt es wenn ich den Ordner nach dem Genre benenne das aus einem Array rausgesucht wird. Wenn ich Artist oder Title nehme klappt es nicht mit dem Verschieben. Wenn ich an den Ordnernamen hinter Artist noch etwas anfügen will geht das auch verloren und bei genre nicht deshalb vermute ich das es mit den Wert den ich als Artist kriege zusammenhängt.
Delphi-Quellcode:
Vielen dank im Voraus
TID3Tag = record
ID: string[3]; Titel: string[30]; Artist: string[30]; Album: string[30]; Year: string[4]; Comment: string[30]; Genre: Byte; end; procedure Sortieren; var Verzeichnis,Dateiname,Oldname,Newname:string; begin if form1.OpenDialog1.Execute then begin Verzeichnis:=extractfilepath(form1.opendialog1.filename); Dateiname:=extractfilename(form1.opendialog1.filename); with readID3Tag(Verzeichnis+'\'+Dateiname) do begin if (DirectoryExists(Verzeichnis+'\'+Artist)=False) then begin createDir(Verzeichnis+'\'+Artist); end; Oldname:=Verzeichnis+'\'+Dateiname; Newname:=Verzeichnis+'\'+Artist+'\'+Dateiname; movefile(PChar(Oldname),PChar(Newname)); end;//With File do end;//Open Dialog end; |
Re: MoveFile macht einfach nix(ohne Fehlermeldung)
existiert der Ordner denn wo die Datei hinn verschoben werden soll? und was gibt MoveFile zurück?
|
Re: MoveFile macht einfach nix(ohne Fehlermeldung)
Ändere das mal so ab:
Delphi-Quellcode:
Dann bekommst du wenigstens 'ne Fehlermeldung.
if not movefile(PChar(Oldname),PChar(Newname)) then
RaiseLastOsError; [Nachtrag] Klappt den das ReadID3Tag? Welchen Wert hat die Variable "Artist"? |
Re: MoveFile macht einfach nix(ohne Fehlermeldung)
ExtractFilePath liefert dir den Pfad auch mit abschließendem '\'.
Wenn du also das ganze wieder zusammensetzt
Delphi-Quellcode:
hat Oldname so einen wert: c:\Verzeichnis\\Dateiname
Oldname:=Verzeichnis+'\'+Dateiname;
Nächstes mal einfach den Debugger bemühen dann findest du sowas von selbst. |
Re: MoveFile macht einfach nix(ohne Fehlermeldung)
Moin SirThornberry,
Zitat:
Die Shell erkennt mehrere hintereinander stehende Pfadtrennzeichen als eines. Man könnte also auch C:\Verzeichnis\/\/\Dateiname schreiben, ohne dass es zu einem Problem kommt, denn die Shell verarbeitet das als C:\Verzeichnis\Dateiname |
Re: MoveFile macht einfach nix(ohne Fehlermeldung)
Hi, hab das mit dem '\' jetz einfach mal geändert was aber nix am ergebnis geändert hat das mit dem raiselastoserror hat bei mir nich geklappt aber dafür gibt raiselastwin32error folgendes zurück:
Win32 Fehler Code:183 Eine Datei kann nicht erstellt werden wenn sie bereits vorhanden ist. Prozess wurde angehalten. Mit einzelne Anweisung oder Start vortsezten. Wenn daraus einer auf mein Problem schliessen kann, ich kapier nich was ich da ändern muss. ReadId3 Tag funktioniert problemlos da hat artist immer den richtigen wert und der Ordner existiert zuerst nicht (tut er auch wirklich nicht) und wird dann erstellt. |
Re: MoveFile macht einfach nix(ohne Fehlermeldung)
Kann es sein, dass im Zielverzeichnis schon eine Datei mit dem Namen existiert? Andere Möglichkeit wäre, dass die Variable "Artist" leer ist, dann versuchst du die Datei nämlich auf sich selbst zu verschieben.
|
Re: MoveFile macht einfach nix(ohne Fehlermeldung)
Leider beides nein das is ja mein problem
|
Re: MoveFile macht einfach nix(ohne Fehlermeldung)
hast du schonmal debuggt welche Werte Oldname und NewName haben zu dem Zeitpunkt wo du sie der move-funktion übergibst?
|
Re: MoveFile macht einfach nix(ohne Fehlermeldung)
hmm das bringt mich wieder auf eine alte fährte alles was an buchstaben bis zur 30 fehlt wird durch 0# aufgefüllt da hattich schonmal probiert das mit einer vorschleife wegzumachen aber das hatte nichts gebrahct deswegen dachte ich das es daran nicht liegen wird was kann man da jetzt tun?
Newname='C:\Dokumente und Einstellungen\PapaBaer\Desktop\Other\NeuerOrdner'# 0#0#0...#0'\Dateiname.mp3' |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz