Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Datei öffnen per API-CreateFile funktioniert nicht bei C

  Alt 19. Apr 2010, 19:41
Zitat von devidespe:
Vielleicht verstehe ich das falsch, aber der Aufruf von CreateFile bedeutet doch eigentlich nicht, dass ich die Datei erstellen möchte. Ich dachte, mit "OPEN_ALWAYS" wird die Datei lesend geöffnet und ein Dateihandle erzeugt.
CreateFile erzeugt ein File-Handle ... was genau mit der Datei gemacht wird, entscheiden die Parameter.

Also bei dir wird die Datei im Lese-/Schreibzugriff geöffnet und wenn die Datei nicht existiert wird auch noch versucht Eine zu erzeugen.



OPEN_ALWAYS = Datei versuchen zu öffnen und wenn nicht existent, dann versuchen zu erstellen
CREATE_ALWAYS = immer neu erstellen (Existierendes überschreiben)
CREATE_NEW = Datei neu erstellen, aber abbrechen, wenn datei schon existiert
OPEN_EXISTING = nur öffnen (nur möglich, wenn Datei existiert)

OPEN_ALWAYS = Schreibzugriff, aber eine CD ist nur ReadOnly, darum ist auch kein Schreibzugriff möglich

Delphi-Quellcode:
var DateiPfad: String;

FDateiRead := CreateFile(PChar(DateiPfad), GENERIC_READ,
  0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if FDateiRead = INVALID_HANDLE_VALUE then
  ShowMessage(SysErrorMessage(GetLastError));
$2B or not $2B
  Mit Zitat antworten Zitat