Entwickler-Ecke

Dateizugriff - CreateFile trotz geöffneter Datei


Flamefire - Do 15.10.09 21:58
Titel: CreateFile trotz geöffneter Datei
Ich habe eine Datei, die ich unbedingt verändern möchte. Dummerweise greift ein Prozess gerade auf die Datei zu (ebenfalls mit CreateFile aber im exklusiv modus)
Da ich weiß, dass der Prozess die Datei nur liest und dass auch nicht die ganze Zeit, sollte es keine Probleme geben.
Ich muss lediglich eine Stelle in der Datei ändern (Von der ich auch sicher sein kann, dass sie nicht gerade gelesen wird)

Kann ich das irgendwie erzwingen ohne den Prozess zu beeinflussen?


Delete - Do 15.10.09 22:38

Ich würde sagen nein. Exklusiv geöffnet, ist exklusiv geöffnet. Könnte man das umgehen, hätte der Flag ja keinen Sinn.


Flamefire - Fr 16.10.09 12:30

tja ist halt die frage: SOLLTE man eine exklusiv geöffnete datei nicht nochmal öffnen oder KANN man es nicht?
vlt nicht über die gleiche funktion, sondern über einen umweg...


Delete - Fr 16.10.09 13:11

Man kann nicht und soll auch nicht. Das Programm wird schon seinen Grund haben sie exklusiv zu öffnen.


jaenicke - Sa 17.10.09 11:32

Es geht zwar, aber erstens ist es ziemlich aufwändig und zweitens nicht zu empfehlen. Aber möglich wäre es, wenn du die Zugriffe hookst und CreateFile usw. einfach auf eigene Funktionen umleitest. Das musst du natürlich auch mit allen Lese- und Schreibzugriffen machen (oder du veränderst die Flags einfach, so dass die Datei nicht exklusiv geöffnet wird).