2009-04-29 12 views
0

Ich bin auf der Suche nach einem Code-Snippet, das nicht zugeordneten Speicherplatz auf einem bestimmten Laufwerk programmatisch formatiert.Wie programmiere ich nicht zugewiesenen Speicherplatz programmatisch?

Ich bin ideal für. NET-Code (VB.NET C#) oder C++.

Vielen Dank

+1

Warum formatieren Sie nicht zugeordneten Speicherplatz? Oder versuchen Sie, eine Partition aus nicht zugewiesenem Speicherbereich zu erstellen, die keinem Laufwerk angehört? –

Antwort

2

Die beste Option zu sein scheint, WMI zu verwenden. Insbesondere sollten Sie sich die Format-Methode der Klasse Win32_Volume ansehen.

könnten Sie stattdessen die SHFormatDrive Funktion der API Win32 verwenden. Dies ist möglicherweise die einfachere Option (besonders in C++), obwohl ich nicht sicher bin, wie die Funktionalität mit der WMI-Methode verglichen wird. Bearbeiten: Wie M. Jahedbozorgan darauf hinweist, scheint dies den Explorer-Shell-Dialog zu öffnen, um das Laufwerk zu formatieren.

Eine dritte Option ist, die Befehlszeile format.exe aus dem Code auszuführen (und dann aus dem Stdout-Stream lesen), aber das ist eindeutig keine sehr nette Lösung.

Weitere Vorschläge finden Sie in this thread in MSDN-Foren.

+0

Windows XP und früher: Die Klasse Win32_Volume ist nicht verfügbar. SHFormatDrive öffnet den Shell-Dialog Format. – CSharper

+0

Ja, Sie scheinen mit SHFormatDrive recht zu haben - gut entdeckt. Sind Sie sich über Win32_Volume und WinXP sicher? – Noldorin

+0

M. Jahedbozorgan hat Recht - die Win32_Volume-Dokumentation zu MSDN gibt an, dass die Klasse für XP und frühere Versionen nicht verfügbar ist – roo

0

Es sieht so aus, als ob Windows nur eine Methode zum Formatieren eines gesamten Volumes bietet, nicht nur des nicht zugeordneten Speicherplatzes.

Also, wenn ich Ihre Frage richtig verstehe, können Sie eine Partition in dem verbleibenden Raum des Laufwerks erstellen, formatieren Sie dann die neue Partition.

Sie möchten PInvoke und WMI Win32_Volume verwenden.

1

Erstellen Sie eine Datei, die das gesamte Laufwerk ausfüllt, schreiben Sie dann zufällige Daten hinein, leeren Sie sie und schließen Sie sie.

Der erste Schritt ist wahrscheinlich die härteste zuverlässig über mehrere Konfigurationen (beispielsweise NTFS komprimierte Volumen oder pro Benutzer Quoten) zu tun.

Oder verwenden Sie "cipher/w" von der Befehlszeile.

Verwandte Themen