Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Large_Integer SetFilePointerEx Error 183

  Alt 23. Mär 2017, 19:03
Was ist denn Fehler 183 überhaupt?
Zitat:
ERROR_ALREADY_EXISTS
183 (0xB7)
Cannot create a file when that file already exists.
Macht irgendwie wenig Sinn im Zusammenhang mit der genannten API.

@Emil:
Kannst du mal mehr Code zeigen?
Jo

Ich öffne die Datei auf diese weise


Delphi-Quellcode:
    if FOpen(PWideChar(wsFile), 0, 0, hFileIn) = 0 then
    begin
Delphi-Quellcode:
function TAnimatePng.FOpen(FileName: PWideChar; AccessMode: DWORD; ShareMode: DWORD;
  var hFile: THandle): DWORD;
var
  AccessIs: DWORD;
  ShareIs: DWORD;
  FlagAndAttribute: DWORD;
begin
  AccessMode := min(max(AccessMode, 0), 2);
  //0 Nur lesend öffnen.
  if AccessMode = 0 then
    AccessIs := GENERIC_READ
  // 1 Nur zum schreiben öffnen.
  else if AccessMode = 1 then
    AccessIs := GENERIC_WRITE
  // 2 Zum Schreiben und lesen öffen
  else
  AccessIs := GENERIC_READ or GENERIC_WRITE;

  // Kohärenz zwischen 1-4
  ShareMode := min(max(ShareMode, 1), 4);
  // 1 Verweigerter Lese/Schreibzugriff.
  if ShareMode = 1 then
    ShareIs := 0
  // 2 Verweigerter Schreibzugriff
  else if ShareMode = 2 then
    ShareIs := FILE_SHARE_READ
  // 3 Verweigerter Lesezugriff
  else if ShareMode = 3 then
    ShareIs := FILE_SHARE_WRITE
  // 4 Vollerzugriff
  else
  ShareIs := FILE_SHARE_READ or FILE_SHARE_WRITE;

  if hFile = INVALID_HANDLE_VALUE then
    FlagAndAttribute := FILE_ATTRIBUTE_NORMAL or FILE_FLAG_WRITE_THROUGH
  else
  FlagAndAttribute := FILE_ATTRIBUTE_NORMAL;

  hFile := CreateFile(FileName, AccessIs, ShareIs, nil, OPEN_ALWAYS, FlagAndAttribute, 0);

  if hFile = INVALID_HANDLE_VALUE then
  begin
    Result := GetLastError();
    hFile := 0;
    exit;
  end;
  Result := 0;
end;
Hilft das ?

gruss
  Mit Zitat antworten Zitat