-
大小: 5.01MB文件類型: .rar金幣: 2下載: 0 次發布日期: 2023-09-18
- 語言: 其他
- 標簽:
資源簡介
恢復刪除文件,不錯的學習例子,分享一下。

代碼片段和文件信息
#include?“commen.h“
#include?“healthInfo.h“
#include?“theDataRecoveryHead.h“
//////////////////////////////////////////////////////////////////////////
//獲取邏輯驅動器信息?
?BOOL?GetLogicalDriveInfo(LOGICALDRIVEINFO?*logicalDriveInfochar?logicalDriveNumberint?phyDriveNumber)
{
HANDLE?hDrive;
char?path[128];
STORAGE_DEVICE_NUMBER?number;???//use?this?to?get?disk?numbers
DWORD?readed;???????????????????//?discard?results
sprintf_s(path“\\\\.\\%c:“logicalDriveNumber);
hDrive=CreateFile(pathGENERIC_READ?|?GENERIC_WRITEFILE_SHARE_READ?|?FILE_SHARE_WRITE?NULLOPEN_EXISTING0NULL);
if?(hDrive?==?INVALID_HANDLE_VALUE)?//?cannot?open?the?drive
{
CloseHandle(hDrive);
return?FALSE;
}
if?(DeviceIoControl(hDriveIOCTL_STORAGE_GET_DEVICE_NUMBERNULL0&numbersizeof(number)&readedNULL))
{
//如果不同一個磁盤,則返回FALSE
if?((number.DeviceNumber!=phyDriveNumber)?||?phyDriveNumber<0)
{
CloseHandle(hDrive);
return?FALSE;
}
}
//OK有這個物理驅動器,而且屬于同一個磁盤開始獲取邏輯驅動器信息
logicalDriveInfo->szDrive=logicalDriveNumber;
//獲取驅動器類型
sprintf_s(path“%c:\\“logicalDriveNumber);
logicalDriveInfo->uDriveType=GetDriveType(path);
//使用GetVolumeInformation獲取
if(!GetVolumeInformation(
path
logicalDriveInfo->szDriveName
sizeof(logicalDriveInfo->szDriveName)
&logicalDriveInfo->dwSerialNumber
&logicalDriveInfo->dwMaximumComponentLength
&logicalDriveInfo->dwFileSystemFlags
logicalDriveInfo->dwFileSystem
sizeof(logicalDriveInfo->dwFileSystem)
))
{
CloseHandle(hDrive);
return?FALSE;
}
//使用GetDiskFreeSpace獲取信息
if?(!GetDiskFreeSpace(
path
&logicalDriveInfo->dwSectorsPerCluster
&logicalDriveInfo->dwBytesPerSector
&logicalDriveInfo->dwNumberOfFreeCluters
&logicalDriveInfo->dwTotalNumberOfClusters
))
{
CloseHandle(hDrive);
return?FALSE;
}
CloseHandle(hDrive);
return?TRUE;
}
//////////////////////////////////////////////////////////////////////////
//讀取物理驅動器信息,簡短的
?//使用DeviceIoControl獲取硬件信息步驟:根據控制碼(第二個參數),填充好輸入
?//參數,然后再定義輸出參數,從輸出參數里取信息,這些參數一般是結構體的。
BOOL?GetPhysicalDriveInfoShort?(PHYDRIVEINFOSHORT?*pThePhyDriveInfoint?iDrive)
{
HANDLE?hPhysicalDriveIOCTL?=?0;
BOOL?OK=FALSE;
TCHAR?driveName?[32];
_stprintf_s(driveName_T(“\\\\.\\PhysicalDrive%d“)iDrive);
//?打開設備,獲得物理磁盤句柄
hPhysicalDriveIOCTL?=?CreateFile?(driveName?0FILE_SHARE_READ?|?FILE_SHARE_WRITE?NULLOPEN_EXISTING?0?NULL);
if?(hPhysicalDriveIOCTL?!=?INVALID_HANDLE_VALUE)
{
STORAGE_PROPERTY_QUERY?query;
DWORD?cbBytesReturned?=?0;
char?buffer?[10000];
memset?((void?*)?&?query?0?sizeof?(query));
query.PropertyId?=?StorageDeviceProperty;
query.QueryType?=?PropertyStandardQuery;
memset?(buffer?0?sizeof?(buffer));
if?(?DeviceIoControl?(hPhysicalDriveIOCTL?IOCTL_STORAGE_QUERY_PROPERTY&?querysizeof?(query)&?buffersizeof?(buffer)&?cbBytesReturned?NULL)?)
{????
STORAGE_DEVICE_DEscriptOR?*?descrip?=?(
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????96256??2014-06-09?15:53??Src\Debug\Robam?Data?Recovery.exe
?????文件?????920576??2014-06-09?15:53??Src\Debug\Robam?Data?Recovery.pdb
?????文件??????60928??2012-05-22?17:06??Src\Release\Robam?Data?Recovery.exe
?????文件?????437248??2012-05-22?17:06??Src\Release\Robam?Data?Recovery.pdb
?????文件??????61011??2012-05-27?15:48??Src\TheGood\commen.cpp
?????文件??????12704??2014-05-19?15:19??Src\TheGood\commen.h
?????文件??????23944??2014-06-09?15:53??Src\TheGood\Debug\BuildLog.htm
?????文件?????159061??2014-05-19?15:20??Src\TheGood\Debug\commen.obj
?????文件?????170351??2014-06-09?15:53??Src\TheGood\Debug\main.obj
?????文件?????????65??2014-06-09?15:53??Src\TheGood\Debug\mt.dep
?????文件????????937??2014-05-15?08:45??Src\TheGood\Debug\Robam?Data?Recovery.exe.em
?????文件???????1004??2014-05-15?08:45??Src\TheGood\Debug\Robam?Data?Recovery.exe.em
?????文件????????873??2014-06-09?15:53??Src\TheGood\Debug\Robam?Data?Recovery.exe.intermediate.manifest
?????文件????????663??2012-03-02?14:19??Src\TheGood\Debug\TheGood.exe.em
?????文件????????728??2012-03-02?14:19??Src\TheGood\Debug\TheGood.exe.em
?????文件????????621??2012-03-05?23:11??Src\TheGood\Debug\TheGood.exe.intermediate.manifest
?????文件??????10460??2014-05-19?15:20??Src\TheGood\Debug\TheGood.res
?????文件?????592896??2014-06-09?15:53??Src\TheGood\Debug\vc90.idb
?????文件?????462848??2014-06-09?15:53??Src\TheGood\Debug\vc90.pdb
?????文件???????1385??2012-03-23?21:51??Src\TheGood\healthInfo.h
?????文件??????90260??2014-06-09?15:53??Src\TheGood\main.cpp
?????文件????????824??2012-03-16?12:05??Src\TheGood\PIC\301.bmp
?????文件???????3444??2012-03-16?12:01??Src\TheGood\PIC\301.png
?????文件????????824??2012-03-16?12:05??Src\TheGood\PIC\302.bmp
?????文件???????3390??2012-03-16?12:01??Src\TheGood\PIC\302.png
?????文件????????824??2012-03-16?12:05??Src\TheGood\PIC\617.bmp
?????文件???????3571??2012-04-08?14:10??Src\TheGood\PIC\617.png
?????文件???????1150??2012-04-08?14:17??Src\TheGood\PIC\favicon.ico
?????文件??????21530??2012-05-22?17:06??Src\TheGood\Release\BuildLog.htm
?????文件?????173575??2012-05-22?17:06??Src\TheGood\Release\commen.obj
............此處省略27個文件信息
評論
共有 條評論