AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi CopyFile und Leerzeichen bzw. Gänsefüsschen
Thema durchsuchen
Ansicht
Themen-Optionen

CopyFile und Leerzeichen bzw. Gänsefüsschen

Ein Thema von SearchBot · begonnen am 11. Jun 2009 · letzter Beitrag vom 11. Jun 2009
 
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
328 Beiträge
 
Delphi 12 Athens
 
#1

CopyFile und Leerzeichen bzw. Gänsefüsschen

  Alt 11. Jun 2009, 18:07
Ich mache das gerade mit TurboDelphi (Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2)
auf Windows VISTA, aber nicht auf der Platte C, sondern D - da laufen alle Programme ohne Starterlaubnisabfrage! Komischerweise.

Ich möchte meine MP3-Sammlung sortieren - klar gibts dafür schon Tools, aber Selbst-Ist-Der-Mann!
In meinem Projekt will ich anhand des Dateinamens Ordner anlegen und dann die Lieder dorthinein verschieben/kopieren.

zB habe ich 2 MP3s:
Code:
Mordi - Conical [Remix].mp3
Doron Deutsch - Forbidden Forest (2008 return to jungle mix) .mp3
Ich mache es aber so:
Ich kopiere den Namenstring bis zum " - ", das ist eindeutig und bei allen MP3s so, die ich habe (von hier: http://remix.kwed.org - wen es interessiert). Der ist dann in der Variable n gespeichert.

Dann lege ich mit
Delphi-Quellcode:
  if not DirectoryExists(DirectoryListBox2.Directory+'\'+n) then
   CreateDir(DirectoryListBox2.Directory+'\'+n);
das neue Verzeichnis an, wenn nicht schon vorhanden, klappt jedesmal.

Jetzt kommt mein Problem: CopyFile bzw MoveFile
Aber erst mal zum Testen mit CopyFile.

Delphi-Quellcode:
Fvon:=format('%s\%s',[Filelistbox1.Directory,Filelistbox1.Items[i]]);
Fnach:=format('%s\%s\%s',[Filelistbox2.Directory,n,Filelistbox1.Items[i]]);
windows.CopyFile(PAnsiChar(Fvon),PAnsiChar(Fnach),false);
Das klappt bei allen MP3 von Mordi.
Die von Doron Deutsch werden aber nicht kopiert. Der Ordner bleibt leer.

Jaa, klar, die Gänsefüßchen fehlen, hab ich gedacht:
windows.CopyFile(PAnsiChar('"'+Fvon+'"'),PAnsiChar('"'+Fnach+'"'),false); Nö, der Ordner bleibt leer.

Aah.. der Pufferabschluss fehlt:
Delphi-Quellcode:
windows.CopyFile(PAnsiChar('"'+Fvon+'"'+#0),PAnsiChar('"'+Fnach+'"'+#0),false);
windows.CopyFile(PAnsiChar(Fvon+#0),PAnsiChar(Fnach+#0),false);
Nö, weder noch, der Ordner bleibt leer.

Im Forum rumgesucht... Ersetzen der Leerzeichen durch %20 - erfolglos. Andere Kopiermethode mit FileStream - erfolglos.

Irgendwie ist das Leerzeichen im Ordnernamen funktionsbehindernd und ich weiß nicht, wie ich das lösen soll. Ich weiß, man kann es irgendwie mit Gänsefüßchen " machen, aber ich weiß nicht wie, ich habe ja schon allerlei Möglichkeiten durchprobiert.


Kann mir bitte jemand (zu mehr Verständnis ver)helfen?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:46 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