It is possible to recover your file (completely), if you have not performed any cut/copy/paste/defrag operations on the drive where the file was present. This could be accomplished using AutoIt (WINAPI functions). Use the following code: $HRESULT = _FindSomething(".D:", StringToBinary("<Any text specific to your AU3 file>"), Default)
Msgbox(64, "", $HRESULT)
Func _FindSomething($FilePath, $BinaryValue, $StartOffset = Default)
Local $Buffer, $ptr, $hFile, $Result, $Read, $SearchValue, $Pos, $BufferSize = 2048
;## Parameter Defaults
If $StartOffset = Default Then $StartOffset = 0
;## Prep the supplied binary value for search
$SearchValue = BinaryToString($BinaryValue)
;## Define the dll structure to store the data.
$Buffer = DllStructCreate("byte[" & $BufferSize & "]")
$ptr = DllStructGetPtr($Buffer)
;## Open File
$hFile = _WinAPI_CreateFile($FilePath, 2, 2, 1)
If $hFile = 0 Then Return SetError(5, @error, 0)
;## Move file pointer to offset location
$Result = _WinAPI_SetFilePointer($hFile, $StartOffset)
$err = @error
If $Result = 0xFFFFFFFF Then
_WinAPI_CloseHandle($hFile)
Return SetError(5, $err, 0)
EndIf
;## Track the file pointer's position
$Pos = $StartOffset
;## Start Search Loop
While True
$Read = 0
$Result = _WinAPI_ReadFile($hFile, $ptr, $BufferSize, $Read)
$err = @error
If Not $Result Then
_WinAPI_CloseHandle($hFile)
Return SetError(6, $err, 0)
EndIf
$Result = DllStructGetData($Buffer, 1)
$Result = BinaryToString($Result)
$Result = StringInStr($Result, $SearchValue)
If $Result > 0 Then ExitLoop
If $Read < $BufferSize Then
_WinAPI_CloseHandle($hFile)
Return -1
EndIf
$Pos += $Read
WEnd
_WinAPI_CloseHandle($hFile)
If Not $Result Then Return SetError(7, @error, 0)
$Result = $Pos + $Result - 1
Return $Result
EndFunc You could later use a Disk-Editor to make a dump of the content at that offset and then save it as AU3 file. Note: Workable only if you have not made any changes to the Drive after the file was deleted.