![]() |
copyfile geht nicht
hi, ich beiße mir gerade die zähne aus, warum geht dieser quelltext nicht, er bringt immer die
showmessage, weil er es nicht kopiert. was mache ich falsch? if not copyfile(PChar('F:\KS\EV\ev.ini'), PChar('F:\KS\EV\EVSAVE\ev.ini'), true) then ShowMessage('Fehler beim Erstellen der Kopie!'); |
AW: copyfile geht nicht
Stimmt die Quelle, gibt es den Zielpfad, gibt es die Zieldatei noch nicht (failisexists) , hast Du die benötigten Rechte, ist die Quelldatei gesperrt .....
|
AW: copyfile geht nicht
Wie wäre es mit einer aussagefähigeren Fehlermeldung?
Delphi-Quellcode:
if not CopyFile(PChar('F:\KS\EV\ev.ini'), PChar('F:\KS\EV\EVSAVE\ev.ini'), true) then
RaiseLastOSError; if not CopyFile(PChar('F:\KS\EV\ev.ini'), PChar('F:\KS\EV\EVSAVE\ev.ini'), true) then ShowMessage('Fehler beim Erstellen der Kopie!'#13#10 + SysErrorMessage(GetLastError)); |
AW: copyfile geht nicht
der will mich gerade verarschen: "das system kann den angegebenen pfad nicht finden!"
ich bin hier gerade im explorer drin-der pfad ist definitiv da. |
AW: copyfile geht nicht
Kontrollire ihn mal im Debugger oder lass ihn dir vorher mit Showmessage ausgeben.
|
AW: copyfile geht nicht
Delphi-Quellcode:
if not DirectoryExists('F:\') then
ShowMessage('er verarscht dich nicht (root)'); if not DirectoryExists('F:\KS') then ShowMessage('er verarscht dich nicht (KS)'); if not DirectoryExists('F:\KS\EV') then ShowMessage('er verarscht dich nicht (EV)'); if not FileExists('F:\KS\EV\ev.ini') then ShowMessage('er verarscht dich nicht (file)'); |
AW: copyfile geht nicht
wie kontrolliert man das im debugger? *anfänger* :(
|
AW: copyfile geht nicht
Zitat:
![]() ![]() |
AW: copyfile geht nicht
Haltepunkt setzten mit F5 und dann laufen lassen. Dann kanst du mit der Maus über die Variable fahren und dir den Inhalt angucken.
|
AW: copyfile geht nicht
ich haba das mal reinkopiert
if DirectoryExists('F:\') then ShowMessage('er verarscht dich (root)'); if DirectoryExists('F:\KS') then ShowMessage('er verarscht dich (KS)'); if DirectoryExists('F:\KS\EV') then ShowMessage('er verarscht dich (EV)'); if FileExists('F:\KS\EV\ev.ini') then ShowMessage('er verarscht dich (file)'); die showmessages kamen :) mit dem debugger--> keine ahnung wie das geht und wo ma da was sieht |
AW: copyfile geht nicht
F: ist aber kein Netzlaufwerk, bzw. ein SUBST-Laufwerk oder ein ähnliches virtuelles Laufwerk?
Und du hast Delphi nicht etwa auch noch mit Adminrechten gestartet? |
AW: copyfile geht nicht
F ist kein netzlaufwerk, nur eine 2-geteilte platte.
und delphi starte ich ohne adminrechte. |
AW: copyfile geht nicht
"schade", ein unterschiedlicher Benutzerkontext wäre eine Erklärung gewesen.
Welches Bettriebssystem? Screenschot vom Explorer? Und ganz sicher daß der Pfad stimmt? Verzeichnisse können einen anderen Displaynamen haben, als der, welchen man dort sieht. Ich sag dazu nur "C:\Benutzer" im Windows 7, welcher eigentlich C:\Users heißt. (ein Klick in die Adressleiste sollte sowas aber oftmals auslösen) In der Tool-Palette gibt es so uralte Komponenten, ala TDriveComboBox, TDirectoryListBox und TFileListBox (Reiter Win 3.1) Was sagt denn vorallem die Erste davon? |
AW: copyfile geht nicht
Gibt es vielleicht ein Verzeichnis 'F:\KS\EV\EVSAVE\ev.ini' ?
|
AW: copyfile geht nicht
Zitat:
Existiert das Zielverzeichnis F:\KS\EV\EVSAVE ? |
AW: copyfile geht nicht
Klick in die Zeile vor dem Kopierbefehl. Dann drückst du F5. Dann startest du das Programm. Der Debugger hält an dem gesetzten Haltepunkt an. Dann kannst du dir den Inhalt der Variablen angucken, in dem du mit dem Mauscursor über die Variablen fährst. Des weiteren wurde dir schon ein entsprechendes Tutorial verlinkt. Warum hast du dir das noch nicht angeguckt?
|
AW: copyfile geht nicht
Liste der Anhänge anzeigen (Anzahl: 1)
so das wäre der besagte screenshot... vielleicht sollte ich mal in richtung windows-benutzerrechte ermitteln...
|
AW: copyfile geht nicht
Den letzten Parameter von CopyFile hast Du aber zwischenzeitlich auf false gesetzt?
|
AW: copyfile geht nicht
habs mit false und true probiert, jetzt steht er auf true, weil er eigentlich eine meldung herauswerfen soll, wenn die zeildatei schon existiert.
|
AW: copyfile geht nicht
Benenne die Datei mal in ev.txt um und probiies's dann nochmal.
|
AW: copyfile geht nicht
Und lösche die Dateien im Zielverzeichnis.
|
AW: copyfile geht nicht
//Edit: Hat sich erledigt
|
AW: copyfile geht nicht
Welche Fehlermeldung wird denn ausgegeben? Immer noch "Das System kann den angegebenen Pfad nicht finden"?
|
AW: copyfile geht nicht
die datei ist umbenannt, zielverzeichnis nochmal neu erstellt,
aber leider alles beim alten... hier mal der ganze quellcoder der procedure, vielleicht hab ich was übersehen. procedure TEinkaufsliste.BitBtn1Click(Sender: TObject); begin Case MessageDlg ('Soll diese Einkaufsliste gespeichert werden?', mtConfirmation, [ mbYes, mbNo], 0) of mrYes: if not CopyFile(PChar('C:\KS\EV\ev.txt'), PChar('D:\KS\EV\EVSAVE\ev.txt'), false) then ShowMessage('Fehler beim Erstellen der Kopie!'#13#10 + SysErrorMessage(GetLastError)); mrNo: ; End; einkaufsliste.close; end; |
AW: copyfile geht nicht
achso laufwerk c und d sind nur übrig geblieben aus meinen versuchen gerade eben --> muss f:\ sein
|
AW: copyfile geht nicht
Äh, wird die Datei auch vorher im Programm geschlossen? Also wird der Stream oder die StringListe, je nach dem, was du benutzt, auch vorher freigegeben?
|
AW: copyfile geht nicht
Was geschieht, wenn Du auf der Konsole
Code:
ausführst?
copy F:\KS\EV\ev.txt F:\KS\EV\EVSAVE\ev.txt
|
AW: copyfile geht nicht
Und das bitte bei geöffneten Programm und geladener Datei, so wie es auch im Programm der Fall wäre. dann das ganze mit geschlossenem Programm.
|
AW: copyfile geht nicht
das system kann den angegebenen pfad nciht finden- aber auf dem screenshot kann man das doch sehen??
|
AW: copyfile geht nicht
Führ' das bitte mal aus und poste uns die Meldungen.
Delphi-Quellcode:
function TryResetFile(FileName: string): boolean;
var F: textFile; IO: integer; begin AssignFile(F, FileName); {$I-} Reset(F); {$I+} IO:= IOResult; Result:= IO = 0; if not Result then MessageDlg(FileName+' ['+SysErrorMessage(IO)+'].', mtError, [mbOK], 0) else CloseFile(F); end; function TryRewriteFile(FileName: string): boolean; var F: textFile; IO: integer; begin AssignFile(F, FileName); {$I-} Rewrite(F); {$I+} IO:= IOResult; Result:= IO = 0; if not Result then MessageDlg(FileName+' ['+SysErrorMessage(IO)+'].', mtError, [mbOK], 0) else CloseFile(F); end; procedure TEinkaufsliste.BitBtn1Click(Sender: TObject); begin TryResetFile('F:\KS\EV\ev.ini'); TryRewriteFile('F:\KS\EV\EVSAVE\ev.ini') // Dein Code .. end; |
AW: copyfile geht nicht
Dann hol Dir die Pfadnamen doch mal direkt aus dem Explorer (rechts neben den Pfad klicken).
|
AW: copyfile geht nicht
"der vorgang kann nicht erzeugt werden..."
[208F50F0]{dbkdebugide100.bpl} Debug.TDebugger.DBKError + $58 [208F5134]{dbkdebugide100.bpl} Debug.TDebugger.DBKError + $9C [208C2DB1]{dbkdebugide100.bpl} DbkHelper.CheckRetVal + $4D [208C2D31]{dbkdebugide100.bpl} DbkHelper.ErrCode + $5 [208E7A3A]{dbkdebugide100.bpl} Debug.TDebugKernel.CreateProcess + $FA [208F2E15]{dbkdebugide100.bpl} Debug.TDebugger.DoCreateProcess + $1CD [208F2F28]{dbkdebugide100.bpl} Debug.TDebugger.CreateProcess + $54 [208F3A5E]{dbkdebugide100.bpl} Debug.TDebugger.Run + $282 [208F41E6]{dbkdebugide100.bpl} Debug.TDebugger.Run + $372 [208EF10E]{dbkdebugide100.bpl} Debug.TDebugger.Run + $2 [20A7300D]{coreide100.bpl} DebuggerMgr.TDebuggerMgr.Run + $49 [00415C73]{bds.exe } AppMain.TAppBuilder.RunRun (Line 2977, "ui\AppMain.pas" + 0) + $7 [20040123]{rtl100.bpl } Classes.TBasicAction.Execute + $F [2014FE05]{vcl100.bpl } ActnList.TContainedAction.Execute + $31 [20150B68]{vcl100.bpl } ActnList.TCustomAction.Execute + $50 [2003FFEF]{rtl100.bpl } Classes.TBasicActionLink.Execute + $13 [2013FB95]{vcl100.bpl } Controls.TControl.Click + $4D [2019A3DC]{vcl100.bpl } ComCtrls.TToolButton.Click + $0 [20140027]{vcl100.bpl } Controls.TControl.WMLButtonUp + $6B [2013F6A7]{vcl100.bpl } Controls.TControl.WndProc + $2BB [2013F334]{vcl100.bpl } Controls.TControl.Perform + $24 [20142F56]{vcl100.bpl } Controls.GetControlAtPos + $AA [2014301E]{vcl100.bpl } Controls.TWinControl.ControlAtPos + $A6 [2013F334]{vcl100.bpl } Controls.TControl.Perform + $24 [20143229]{vcl100.bpl } Controls.TWinControl.IsControlMouseMsg + $A1 [201435F0]{vcl100.bpl } Controls.TWinControl.WndProc + $3B4 [2019C41D]{vcl100.bpl } ComCtrls.TToolBar.UpdateButtonState + $51 [2019C45E]{vcl100.bpl } ComCtrls.TToolBar.UpdateButtonStates + $36 [2019ED91]{vcl100.bpl } ComCtrls.TToolBar.WndProc + $241 [20142E60]{vcl100.bpl } Controls.TWinControl.MainWndProc + $2C [20040DE4]{rtl100.bpl } Classes.StdWndProc + $14 [20160EF8]{vcl100.bpl } Forms.TApplication.ProcessMessage + $FC [20160F32]{vcl100.bpl } Forms.TApplication.HandleMessage + $A [20161188]{vcl100.bpl } Forms.TApplication.Run + $CC [00422971]{bds.exe } bds.bds (Line 196, "" + 7) + $2 |
AW: copyfile geht nicht
Und wobei jetzt?
|
AW: copyfile geht nicht
wenn ich die functions einfüge, aber mittlerweile geht hier gar nix mehr, mal neu booten... moment....
|
AW: copyfile geht nicht
wenn ich auf play zu starten der anwendung drücke kommt: "der vorgang kann nicht erzeugt werden..."
und wenn ich die functions wieder entferne bleibts dabei :( |
AW: copyfile geht nicht
Mach mal ein neues leeres Projekt und nutze den geposteten Code.
|
AW: copyfile geht nicht
das system kann den pfad nicht finden.... sorry ich bin raus...brauch ne pause
|
AW: copyfile geht nicht
Überprüfe die Pfadangaben!!!
|
AW: copyfile geht nicht
<°))))< ?
|
AW: copyfile geht nicht
ha es geht, aber ich hab von gestern zu heute nix geändert, lediglich für platte f: jeden benutzer im windows auf vollzugriff gesetzt.... *kriese*
trotzdem danke für euren großartigen job! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 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