关于sysinternals的SDelete请教
小弟在读SDelete v1.4源码时发现SecureDelete函数有这样一段
.........
if( FileLengthLo || FileLengthHi ) {
FileLengthLo--;
if( FileLengthLo == (DWORD) -1 && FileLengthHi ) FileLengthHi--;
SetFilePointer( hFile, FileLengthLo, &FileLengthHi, FILE_BEGIN );
if( !SecureOverwrite( hFile, 1 )) {
_tprintf( _T( "\nError overwriting %s: "), FileName );
PrintWin32Error( GetLastError() );
CloseHandle( hFile );
return;
}
................
SecureOverwrite作用是对某文件多次覆盖指定长度的数据,第一个参数为文件句柄,第二个为覆盖的长度.
这里为什么单独对文件的最后一个字节进行处理,而不直接对整个文件处理呢?小弟修改为统一处理对较小文件测试未见到异常.请指教,谢谢
[解决办法]
这里只是覆写最后一个字节进行测试,如果出现错误则进行提示。后面是否还有全部覆写的部分?