2011-01-11 2 views
0

Ich bin ein Delphi-Programmierer. Ich möchte den gesamten freien Speicherplatz eines Speichergeräts mit Dummy-Datei (en) füllen. Während dieser Operation möchte ich verhindern, dass Windows oder andere Programme auf dem Gerät schreiben. Ich weiß, es ist machbar, weil ich Programme gesehen habe, die es tun.Wie zu verhindern, dass das Betriebssystem oder andere Programme auf einem Speichergerät zur gleichen Zeit wie mein Programm schreibt

Ich habe bereits den Code, um die Dummy-Dateien (mit TFileStream, sehr schnell auf NTFS) zu erstellen, so alles, was ich brauche, ist eine Art von Lock/Unlock-Code.

Kennt jemand einen Weg ..? Vielen Dank für einen Vorschlag.

Ich werde sogar Lösungen akzeptieren, die die Art und Weise ändern, wie ich diese Dateien erstelle, vorausgesetzt, dass das gesamte Programm besser funktioniert.

Vielen Dank.

Mit freundlichen Grüßen, John.

+0

Wenn Sie das Gerät entsperren, was stoppt jemanden, der den Speicherplatz auf dem Laufwerk freigibt? –

+0

Und warum müssen Sie sperren? Warum schreiben Sie nicht einfach, bis das System einen Speicherplatzmangel meldet? An diesem Punkt wissen Sie, dass Sie es ausgefüllt haben. –

+0

"Ich weiß, dass es machbar ist, weil ich Programme gesehen habe, die das tun." - Ich weiß nicht, dass das, was Sie zu fragen scheinen, möglich ist. Was genau haben Sie in anderen Programmen gesehen? – ChrisW

Antwort

1

Es gibt eine SetEndOfFile Funktion, die vermutlich transaktional ist (d. H. Entweder erfolgreich ist oder fehlschlägt), was ich denke (ich habe es nicht getestet/überprüft), die Sie verwenden können, um eine Datei zu vergrößern, um den verfügbaren Platz zu füllen.

+0

das ist eine viel bessere antwort als meins! –

+0

Ja, ich weiß es, es ist eine Art von "versuchen, TFileStream.Size: = Größe; Ergebnis: = True; außer Ergebnis: = False; Ende". Eines der Probleme ist, dass Sie die neue Größe "erraten" müssen. Und währenddessen müssen Sie viele Werte versuchen + währenddessen kann das Betriebssystem oder das andere Programm wieder auf das USB-Laufwerk schreiben. –

+0

@John langsam für eine Minute! So funktionieren Dateisysteme. Sie können geändert werden. Selbst wenn Sie irgendwie sperren können, was eine andere Anwendung stoppen soll, die Ihre Dummy-Datei löscht, sobald Sie entsperren? Kannst du das beantworten? –

Verwandte Themen