Luckie wollte sagen, dass
Handle:=CreateFile(PChar('\\.\' + Laufwerk + ':'), GENERIC_READ, FILE_SHARE_READ, NIL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_NO_BUFFERING, 0);
dir ein
Handle auf das
Laufwerk, nicht aber auf die
Datei gibt, die du ja eigentlich haben willst. Deswegen vermutlich auch die panische Reaktion des Vorposters.
Zitat:
Mit normalen Dateifunktionen wie Assign, BlockRead/BlokWrite bzw. auch über Streams kann ich nicht arbeiten, da sie den Windows Cache verwenden.
Das ist - mit Verlaub - Schwachsinn. Wenn du die Funktionen nutzt, die Delphi bereitstellt, um mit dem
Handle von CreateFile zu arbeiten, dann wird Delphi nicht das
Handle spontan ändern und das FILE_FLAG_NO_BUFFERING herausnehmen.
Zitat:
Existiert denn überhaupt noch eine andere Möglichkeit, um dies ohne den Windows Cache zu erledigen?
Siehe Absatz vorher. Ansonsten:
ReadFile,
WriteFile
Was ich mich frage: Zu was soll das eigentlich gut sein? Wenn es dir um einen Benchmark geht, oder du prüfen möchtest, ob die CD in Ordnung ist, würde ich eher zu SPTI greifen...