testen, ob man in eine datei schreiben kann
-
vorneweg:
mir ist klar, dass man versuchen kann, eine datei im schreibmodus zu öffnen, wenn das fehlschlägt, kann man nicht reinschreiben, aber in diesem fall geht es nicht sogut.ich wollte eine Funktion schreiben die testet, ob es überhaupt möglich ist, in eine bestimmte zieldatei zu schreiben, also, dass man die nötigen rechte hat, und dass der Datenträger beschreibbar ist, bzw die datei nicht schreibgeschützt. Ich hab zuerst geschaut, ob man das mit CreateFile machen könnte, dabei würde die datei aber immer geöffnet werden, was ich gerne verhindern wollte.
Hat jemand irgendwelche ideen, wie man das machen könnte? oder kennt jemand ein Flag für CreateFile, damit nur geprüft wird, ob es theoretisch ginge?
-
Das Flag für den Schreibschutz kannst du z.B. mit GetFileAttributes abfragen - aber mehr fällt mir so auf Anhieb auch nicht ein

-
hmm scheinbar haben alle dateien automatisch das flag FILE_ATTRIBUTE_READONLY, wenn auf den datenträger nicht geschrieben werden kann. danke für die tolle Funktion

(nun hat mich mein info lehrer angesteckt: ich schreib nun sogar befehl statt funktion)
-
Befehl?

-
hmm mit schreibschutz komm ich ja nun klar. aber das ganze funktioniert nicht mehr, wenn ich die rechte des benutzers einschränke. Wenn das passiert, weis ich zwar, dass die datei nicht schreib geschützt ist, aber ich weis immernoch nicht, ob ich die nötige berechtigung habe, in diese datei zu schreiben

MSDN konnte mir da auch nicht helfen. wahrscheinlich hab ich einfach nach dem falschen wort gesucht...
-
Hier etwas Delphi Code. Sollte sich auch nach C portieren lassen.
http://www.luckie-online.de/Developer/Delphi/Sonstiges/CheckFileAccess.html
-
jo, das sollte gehen
danke dir.ps: in der winapi geht nichts "einfach", oder?
-
Also doch Winapi ist eigentlich schon toll und einfach, du wirst dich dadran gewöhnen ich hatte mit ihr schon viel Spass.
-
solch eine funktion braucht man ja auch nur extrem selten.