AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Kopieren mit Opendialog.Filename nicht möglich

Kopieren mit Opendialog.Filename nicht möglich

Ein Thema von Larsi · begonnen am 15. Dez 2009 · letzter Beitrag vom 15. Dez 2009
Antwort Antwort
Larsi

Registriert seit: 10. Feb 2007
Ort: Kiel
2.262 Beiträge
 
Delphi 2007 Professional
 
#1

Kopieren mit Opendialog.Filename nicht möglich

  Alt 15. Dez 2009, 13:20
Hi,
ich möchte, dass der Benutzer eine Datei auswählen kann (mit OpenDialog) welche dann an einen bestimmten Ort kopiert wird. Falls die Datei dort schon vorhanden ist soll sie überschrieben werden. Hier mal der Code:

Delphi-Quellcode:
if OpenDialog1.execute then begin
if Fileexists('test.abc') then
DeleteFile('test.abc');
Copyfile(Pchar(Opendialog1.filename), Pchar('test.ab'), true);
end;
Die Datei wird aber nicht kopiert. Selbst wenn keine andere Datei vorher da war. Woran kann das liegen? Mit richtigen Dateinamen (also mit C:\ blabla davor) gehts auch nicht. Verhindert der Opendialog das kopieren, da er selber die Datei reserviert oder so?

MFG Lars Wiltfang
Lars W.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
21.049 Beiträge
 
Delphi XE Professional
 
#2

Re: Kopieren mit Opendialog.Filename nicht möglich

  Alt 15. Dez 2009, 13:24
Keine relativen Pfade verwenden (das wird hier mindestens einmal die Woche gesagt) und ansonsten einmal GetLastError bemühen. Übrigens musst Du die Zieldatei nicht vorher löschen, wenn Du Dir die Parameter von CopyFile einmal in Ruhe anschaust.
Detlef
Wenn Dein Programm nicht macht, was es soll, nenn es einfach "Version 1.0"

Delphi programming is cool
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
Ort: Kiel
2.262 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Kopieren mit Opendialog.Filename nicht möglich

  Alt 15. Dez 2009, 13:33
ShowMessage(GetLastError); Da steht 0.
Lars W.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
22.943 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Kopieren mit Opendialog.Filename nicht möglich

  Alt 15. Dez 2009, 13:34
Zitat von DeddyH:
Keine relativen Pfade verwenden (das wird hier mindestens einmal die Woche gesagt)
der Grund: der Opendialog verändert das aktuelle Arbeitsverzeichnis des Programms und relative Pfade sind relativ zu diesem aktuellen Arbeitsverzeichnis.


Zitat von Larsi:
ShowMessage(GetLastError); Da steht 0.
und wonach hattest du dieses abgefragt?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2012
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
4.484 Beiträge
 
#5

Re: Kopieren mit Opendialog.Filename nicht möglich

  Alt 15. Dez 2009, 13:34
Hallo,

Delphi-Quellcode:
if OpenDialog1.execute then
begin
  if FileExists('test.abc') then
  begin
    DeleteFile('test.abc');
  end;
  Copyfile(Pchar(Opendialog1.filename), Pchar('test.ab'), true);
end;
2 mal 'test.abc'
1 mal 'test.ab'

???

Ich würde bei 3mal der gleichen Datei
eh eine Variable/Konstante nehmen.

Das mit den absoluten Pfaden hast du ja schon gelesen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
21.049 Beiträge
 
Delphi XE Professional
 
#6

Re: Kopieren mit Opendialog.Filename nicht möglich

  Alt 15. Dez 2009, 13:37
Und nun zusammengefasst:
Delphi-Quellcode:
const MyFilename = 'test.abc';
...
if OpenDialog1.execute then begin
  if not Copyfile(Pchar(Opendialog1.filename), Pchar(IncludeTrailingPathDelimiter(MyPath) + MyFilename), false) then
    MessageBox(0,PChar(SysErrorMessage(GetLastError)),nil,MB_OK or MB_ICONERROR);
end;
Detlef
Wenn Dein Programm nicht macht, was es soll, nenn es einfach "Version 1.0"

Delphi programming is cool
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Karben
2.125 Beiträge
 
Delphi XE Professional
 
#7

Re: Kopieren mit Opendialog.Filename nicht möglich

  Alt 15. Dez 2009, 18:26
DeddyH hat´s endlich hingekriegt den aus dem OpenDialog übergebenen Filenamen zu verwenden...
aber warum die Konstante für die Zieldatei ? Wenn ich eine Datei kopiere möchte ich auch, daß sie so heißt wie vorher.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.517 Beiträge
 
Delphi 7 Professional
 
#8

Re: Kopieren mit Opendialog.Filename nicht möglich

  Alt 15. Dez 2009, 19:01
Dann nimm halt den Dateinamen
Delphi-Quellcode:
if OpenDialog1.execute then begin
  if not Copyfile(Pchar(Opendialog1.filename), Pchar(IncludeTrailingPathDelimiter(MyPath) + ExtractFileName(opendialog1.filename)), false) then
    MessageBox(0,PChar(SysErrorMessage(GetLastError)),nil,MB_OK or MB_ICONERROR);
end;
Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2012 by Daniel R. Wolf