Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
25. Feb 2011
Mit "Dateiname" hab ich den kompletten Dateinamen inklusive Pfad gemeint :wink:
Genau der gleiche Fehlercode: 124 (Die Ebene des Systemaufrufs ist falsch) :wall:
Oder kann es vielleicht sein, das SHFileOperation mit diesen Präfixen nicht klar kommt?
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
25. Feb 2011
Zwei Probleme:
1: Der problematische Dateiname ist "nur" 250 Zeichen lang, MAX_PATH steht aber auf 260 :wall:
2: Wenn ich pauschal den Pfaden ein "\\?\" voranstelle, liefert SHFileOperation den Fehler 124 (Die Ebene des Systemaufrufs ist falsch) zurück :shock:
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
25. Feb 2011
Okay, mit dieser Funktion sollte dann also das Kopieren von Dateien mit sehr langem Dateinamen klappen:
function ShellFileCopy(const aSource, aDest: string): Integer;
var
SH: TSHFileOpStructW;
sSource, sDest: WideString;
begin
ZeroMemory(@SH, SizeOf(SH));
sSource := aSource;
sDest := ExtractFilePath(aDest);
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
24. Feb 2011
@mleyen: Ohne es getestet zu haben, mal ganz dumm gefragt: Der ursprüngliche Dateiname bleibt aber erhalten oder bekommt die Kopie den verkürzten Namen. Ich frage deshalb, weil das Problem bei einem Kunden aufgetreten ist und der sich bedanken wird, wenn unser Programm die Dateinamen seiner Dokumente "zerschießt" 8-)
@himitsu:
Also im Prinzip so (Pseudo-Code)
if Length(sDateiname) >...
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
24. Feb 2011
Hallo,
ich knabbere grade an folgendem Problem:
Ich kopiere diverse Dateien mittels SHFileOperation. Jetzt bekomme ich jedoch bei einigen Dateien mit einem sehr langen Dateinamen die Fehlermeldung, das der Dateiname oder die Erweiterung zu lang sei.
Kann man solche Dateien trotzdem irgendwie kopieren?
Die Funktion zum Kopieren der Dateien sieht wie folgt aus:
function ShellFileCopy(const...