我需要一些帮助才能让VSS在C++中工作。我的基本目标是扫描文件夹中的更改文件(按修改日期),然后使用VSS将它们备份到其他设备。关于如何做到这一点,文档不清楚(至少对我而言),我找不到任何体面的例子来说明如何做到这一点。C++中的Windows VSS(卷影复制)
我的过程应该像这样工作:
文件夹进行扫描,并创建修改过的文件的列表。 创建VSS快照并复制文件。 VSS快照被丢弃或释放(或其他)。
这里是我迄今(为简便起见处理删除错误):
VSS_SNAPSHOT_PROP snapshotProperties;
::CoInitialize(NULL);
::CreateVssBackupComponents(&m_pBackupComponents);
m_pBackupComponents->InitializeForBackup();
m_pBackupComponents->StartSnapshotSet(&m_SnapshotSetId);
m_pBackupComponents->AddToSnapshotSet(wszVolumePathName, GUID_NULL, &snapshotId);
m_pBackupComponents->SetBackupState(TRUE, FALSE, VSS_BT_FULL, FALSE);
m_pBackupComponents->PrepareForBackup(&pPrepareForBackupResults);
pPrepareForBackupResults->Wait();
m_pBackupComponents->DoSnapshotSet(&pDoSnapshotSetResults);
m_pBackupComponents->GetSnapshotProperties(snapshotId, &snapshotProperties); <-- Never gets beyond here
好了,这似乎是正确的方法。然而,拷贝线程冻结在最后一行代码,从来没有得到任何进一步。
谢谢, Ĵ
编辑:更新以显示其停止在GetSnapshotProperties()
你还在寻找答案? – 2011-06-26 14:07:11