Mit einem kleinen Trick kann man den freien Speicherplatz auf einem NTFS-Volume
löschen bzw. überschreiben. Es werden permanet Daten in eine temp. Datei
geschrieben bis kein Speicherplatz mehr zur Verfügung steht. Anschließend wird diese Datei wieder gelöscht.
Imports System.IO
Private Sub ClearUnusedVolumeSpace(ByVal driveletter As String)
' Standard-Clustergrösse 4 KB
Dim Data(4095) As Byte
Dim Stream As FileStream
Dim TempFile As String = driveletter.Substring(0, 1) & ":\" & "FreeSpace.tmp"
Try
' Temp. Datei erstellen
Stream = New FileStream(TempFile, FileMode.Create, FileAccess.Write, FileShare.None)
' Enllosschleife, wird nur verlassen wenn kein Speicherplatz
' mehr zur Verfügung steht.
Do
Stream.Write(Data, 0, 4096)
Loop
Catch
'
Finally
If Not Stream Is Nothing Then
Stream.Close()
' Temp. Datei löschen - Fertig
File.Delete(TempFile)
End If
End Try
End Sub
7 Kommentare zum Snippet