我需要一些幫助才能讓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