Abfragen und Weiterleiten von Windows-Dateivorgängen in einem C-Programm

379
Guy Mann

Meine Absicht ist es, ein Programm (ich habe Pelles C) zu schreiben, dessen Funktion darin besteht, Windows-Lese- / Schreibvorgänge in bestimmte Verzeichnisse abzufangen und sie an andere, vom Benutzer festgelegte weiterzuleiten. Beispielsweise ist eine bestimmte Software zum Schreiben in C: \ Windows \ Temp hartcodiert, wobei die System-TEMP- und TMP-Umgebungsvariablen ignoriert werden. Wenn ein Programm eine Dateioperation anfordert, würde mein Auftrag die Anforderung abfangen, das Zielverzeichnis abrufen, mit Einträgen aus einer vom Benutzer erstellten Liste vergleichen und dann feststellen, dass alle Lese- / Schreibvorgänge an den gewünschten Ort umgeleitet werden (z. B. D: \ Temp ). Mein größtes Hindernis ist, dass ich keine spezifische Windows-Programmierung kenne (obwohl ich ANSI C kenne). Und meine Google-Recherche war auch nicht so fruchtbar. Ich hoffe, jemand kann mich auf einige Ressourcen hinweisen, die bei der Lösung dieses Problems hilfreich sein können. Hinweis:

0
Sie werden jeden Alarm über das Abfangen von Dateien auslösen, den Windows auf diese Weise hat. Windows hat bereits eine integrierte Möglichkeit, dies einzurichten. CDove vor 6 Jahren 0
Danke für deine Antwort. Können Sie bitte erläutern, wie Sie auf diese integrierte Funktionalität zugreifen können? Guy Mann vor 6 Jahren 0
Dies wird als [NTFS-Dateiverzweigung] (https://en.wikipedia.org/wiki/NTFS_junction_point) bezeichnet. CDove vor 6 Jahren 0
Ja, ich verwende derzeit NTFS-Dateiverbindungen (beispielsweise habe ich das Verzeichnis C: \ Windows \ Temp in Temp.orig umbenannt und dann Folgendes getan: mklink / JC: \ Windows \ Temp D: \ Temp). Ich war mir nur nicht sicher, ob dies eine "richtige" Vorgehensweise war. Ich bleibe jetzt bei den Saft. Guy Mann vor 6 Jahren 0
Ja, das ist der richtige Weg. Oder es ist zumindest der Weg, der geschaffen wurde, um mit dieser Situation umzugehen. EBGreen vor 6 Jahren 0
Obwohl ich gefragt hatte, wie man dies durch das Schreiben eines Programms erreichen kann, sind die Antworten für meine Zwecke funktional gleich geblieben (ganz zu schweigen von viel einfacher). Ich werde das als gelöst betrachten. Vielen Dank an CDove & EBGreen. Guy Mann vor 6 Jahren 0

0 Antworten auf die Frage