AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"
Thema durchsuchen
Ansicht
Themen-Optionen

TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

Ein Thema von skoschke · begonnen am 20. Jun 2022 · letzter Beitrag vom 22. Jun 2022
Antwort Antwort
Seite 1 von 2  1 2      
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#1

TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 20. Jun 2022, 14:02
Delphi-Version: 10.4 Sydney
Hallo,

in einer DLL verwende ich TFile.Copy(fromName,toName,true) zum Kopieren von Dateien.

Hier bei mir und auf einem Rechner im Support läuft das alles einwandfrei, nur bei einem Kunden kommt o.g. Fehler.

In einem Try / Except Block lasse ich mir dann den Fehler ausgeben:
LogAusgabe(E.ClassName + ' in Copierfunktion : ' + E.Message + slinebreak + fromName + slinebreak + toName);

Es wird folgendes ausgegeben:
EInOutError in Copierfunktion : Falscher Parameter
H:\214214.pdf
C:\OneDrive\Desktop\758DDE1F-4452-4108-AC2B-C2657DCCDA45.pdf

Ich habe keine Ahnung wo ich da ansetzen könnte!

Bitte um Unerstützung
Ciao
Stefan
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 20. Jun 2022, 14:19
Vorhandensein von Laufwerken (gemappte Netzlaufwerke?), Verzeichnissen und Dateien wird VORHER geprüft?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 20. Jun 2022, 14:26
Datei/Verzeichnis offline? (OneDrive)

Geht es denn mit einem normalen Verzeichnis?
$2B or not $2B
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#4

AW: TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 20. Jun 2022, 14:34
Wenn H:\ ein USB-Laufwerk ist, dann könnte es auch einfach Formatierungsprobleme geben.
Kann man denn mit Explorer dort was hinkopieren ?

Ich hatte schon Fälle wo fremd-formatierte USB-Drives nicht lesbar/schreibbar waren, obwohl sie erstmal ordentlich aussahen und eingebunden waren,
ein Neuformatieren auf dem jeweiligen Rechner hat geholfen.
Am Besten immer vorher Schritt-für-Schritt Testen bis wohin was noch geht (Laufwerkszugriff, Directory, File, Rechte, ....),
je detaillierter die Fehlermeldungen desto besser auf einem Kundenrechner.
  Mit Zitat antworten Zitat
Benutzerbild von PaPaNi
PaPaNi

Registriert seit: 31. Mär 2022
47 Beiträge
 
#5

AW: TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 20. Jun 2022, 14:35
1. Kann es sein, dass die Zieldatei schon existiert und von jemandem geöffnet ist?
Wenn ich das richtig verstehe, dann ist der letzte Parameter(=True) beim File.Copy sorgt dafür, dass die Datei überschrieben sein sollte? Vielleicht liegt es daran?
2. Mit Windows-Explorer funktioniert das Kopieren von diesen Dateien?
3. Und ja, ich hoffe, dass es vor dem Kopieren geprüft wird, ob die Ziel- und Quell-Dateien existieren.
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 20. Jun 2022, 15:03
Ja, es wird geprüft ob die Quelldatei vorhanden ist, dann wird kopiert...

Ich habe ein Testprogramm gebastelt, welches eine Datei, bei der der Fehler auftrat, 1000 mal kopiert.
Beim ca. 200. Mal dann wieder der Fehler und auf dem Server (Laufwerk H) nachsehen lassen und siehe da, da hat sich Norton irgendwie gestört gefühlt, warum auch immer...

Kunde soll jetzt seinen Norton bändigen, an uns liegt es nicht

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 20. Jun 2022, 15:29
Kopierst du evtl. viele Dateien hintereinander?
Dann kann es sein das der Virenscanner nicht mehr hinterher kommt und über ein Veto/Block das kopieren unterbindet.
Hier haben wir mittlerweile ein RetryAfter200ms eingebaut...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 22. Jun 2022, 07:25
Ja, es werden teilweise sehr viele Dateien hintereinander kopiert...

Wenn da ein Virenscanner "nicht hinterherkommt und blockiert" taugt der meiner Meinung nach nicht...

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 22. Jun 2022, 09:53
Wenn da ein Virenscanner "nicht hinterherkommt und blockiert" taugt der meiner Meinung nach nicht...
Dann taugt Kaspersky und Sophos schon mal nix...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.944 Beiträge
 
Delphi 12 Athens
 
#10

AW: TFile.Copy Aufruf ergibt Fehlermeldung "Falscher Parmeter"

  Alt 22. Jun 2022, 10:15
Kaspersky taugt ja auch wirklich nicht...mit seinen ganzen false-positives.
Bei Sophos dachte ich immer es wäre eine Firewall , die haben auch Virenscanner?
Auf jedenfall scheint Sophos für System-Administratoren nicht intuitiv bedienbar zu sein,
weil sie in der Regel mehrere Versuche und mehrere Tage für Portfreigaben brauchen.

Ja, es werden teilweise sehr viele Dateien hintereinander kopiert...

Wenn da ein Virenscanner "nicht hinterherkommt und blockiert" taugt der meiner Meinung nach nicht...
Vielleicht lohnt ein Test mit SHFileOperation
Delphi-Quellcode:
uses Shellapi;

//Does not work in debug mode...unless debugger is setup to handle the c000000005 exception
function DoFileWork(aOperation: FILEOP_FLAGS; aFrom, aTo: String;Flags: FILEOP_FLAGS): Integer;
var
  FromPath, ToPath: String;
  SHFileOpStruct: TSHFileOpStruct;
begin
  SetLastError(0);
  ZeroMemory(@SHFileOpStruct,SizeOf(SHFileOpStruct));
  with SHFileOpStruct do
  begin
    wFunc := aOperation;
    pFrom := PAnsiChar(aFrom+ #0#0);
    if aTo <> 'then
    begin
      pTo := PAnsiChar(aTo+ #0#0)
    end else begin // target available
      pTo := nil;
    end; // target not available
    fFlags := Flags;
  end; // structure
  Result := SHFileOperation(SHFileOpStruct);
end;
Delphi-Quellcode:
  if 0 <> DoFileWork(FO_COPY,
             ExcludeTrailingPathDelimiter(SourcePath) ,
             ExcludeTrailingPathDelimiter(DestPath),
             FOF_NOCONFIRMATION or
             FOF_NOCONFIRMMKDIR or
             FOF_RENAMEONCOLLISION)
  then
  Begin
    Error := GetLastError;
    if Error <> 0 then
      ShowMessage('Fehler beim Kopieren nach'+ExcludeTrailingPathDelimiter(DestPath)+' :'+ SysErrorMessage(error) );
  End;
Der Code ist für D2007... also muss evtl für andere Delphis angepasst werden.
SHFileOperation benutzt quasi den windows DateiExplorer und der müsste gut mit dem Virenscanner zusammen arbeiten.
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (22. Jun 2022 um 10:56 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:42 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