Hali Halo,
Ich versuche eine methode zu finden mit welcher es möglich ist Datein Zu Wipen um sicher zu gehen das sie nicht wiederherstellbar werden.
Ich kann mir denken das dabei die Sektoren auf der HDD überschrieben werden müssen.. aber nunja ich habs so 'gelöst'.
Reicht das aus? oder ist das vielleicht die Falsche Methode?
im klartext, hier wird jedes Zeichen durch eine Zufällig generierte Nummer ersetzt.
AutoIt
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Change2CUI=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;stand 25.04.2017 19:50 Author: Candyland
#include <array.au3>
#include <Constants.au3>
Local $folder
Local $iAnswer = MsgBox(BitOR($MB_YESNO, $MB_SYSTEMMODAL), "Option", "Choose Yes for Folder Wiping or No for Single File Wiping")
If $iAnswer = 7 Then
$WIPEfile_CC = FileOpenDialog("", @ScriptDir, "(*.*)")
if @error then Exit
Local $WIPEfile_C[2] = ['1',$WIPEfile_CC]
ElseIf $iAnswer = 6 Then
$WIPEfile_CC = FileSelectFolder("", @ScriptDir)
if @error Then Exit
$WIPEfile_C = _RecursiveFileListToArray($WIPEfile_CC, '', 1)
$folder = 1
EndIf
For $i = 1 To UBound($WIPEfile_C) -1 Step 1
Local $WIPEfile_S = FileGetSize($WIPEfile_C[$i])
Local $WIPEfile_O = FileOpen($WIPEfile_C[$i], 2)
ConsoleWrite(UBound($WIPEfile_C) - 1 - $i & '~Files Left' & @CRLF & 'Current File~' & $WIPEfile_C[$i])
Local $WIPEfile_R, $count=0
For $is = 1 To $WIPEfile_S Step 1
;~ $count = $count +1
;~ if $count = 300 Then
;~ $WIPEfile_R = Random('0', '9', 1) & @CRLF
;~ $count = 0
;~ Else
$WIPEfile_R = Random('0', '9', 1)
;~ EndIf
FileWrite($WIPEfile_O, $WIPEfile_R)
Next
FileClose($WIPEfile_O)
ConsoleWrite(' -Wiped' & @CRLF)
FileDelete($WIPEfile_C[$i])
Next
if $folder = 1 Then
DirRemove(StringLeft($WIPEfile_C[1], StringInStr($WIPEfile_C[1], '\', 0, -1)), 1)
EndIf
;Author: Oscar (www.autoit.de)
;https://autoit.de/index.php/Thread/12423-RecursiveFileListToArray-mit-StringRegExp/
Func _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
Local $hSearch, $sFile, $sReturn = ''
If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
$hSearch = FileFindFirstFile($sPath & '*.*')
If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
While True
$sFile = FileFindNextFile($hSearch)
If @error Then ExitLoop
If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
$sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
ContinueLoop
EndIf
If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
WEnd
FileClose($hSearch)
If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
Return $sReturn
EndFunc ;==>_RecursiveFileListToArray
Alles anzeigen