首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于sysinternals的SDelete请问

2012-03-24 
关于sysinternals的SDelete请教小弟在读SDeletev1.4源码时发现SecureDelete函数有这样一段.........if(Fil

关于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作用是对某文件多次覆盖指定长度的数据,第一个参数为文件句柄,第二个为覆盖的长度.

这里为什么单独对文件的最后一个字节进行处理,而不直接对整个文件处理呢?小弟修改为统一处理对较小文件测试未见到异常.请指教,谢谢

[解决办法]
这里只是覆写最后一个字节进行测试,如果出现错误则进行提示。后面是否还有全部覆写的部分?

热点排行