Metode IVssComponent::GetDifferencedFile (vswriter.h)
Metode GetDifferencedFile mengembalikan informasi tentang kumpulan file (file atau file tertentu) untuk berpartisipasi dalam pencadangan atau pemulihan bertahap atau diferensial sebagai file yang berbeda—yaitu, pencadangan dan pemulihan yang terkait dengannya akan diimplementasikan seolah-olah seluruh file disalin ke dan dari media cadangan (dibandingkan dengan menggunakan file parsial).
Metode ini dapat dipanggil oleh pemohon atau penulis selama operasi pencadangan atau pemulihan.
Sintaks
HRESULT GetDifferencedFile(
[in] UINT iDifferencedFile,
[out] BSTR *pbstrPath,
[out] BSTR *pbstrFilespec,
[out] BOOL *pbRecursive,
[out] BSTR *pbstrLsnString,
[out] FILETIME *pftLastModifyTime
);
Parameter
[in] iDifferencedFile
Jumlah indeks file yang berbeda yang akan diperiksa. Nilai parameter ini adalah bilangan bulat dari 0 hingga n–1 inklusif, di mana n adalah jumlah total file perbedaan yang terkait dengan komponen tertentu (dan subkomponennya jika menentukan set komponen). Nilai n dikembalikan oleh IVssComponent::GetDifferencedFilesCount.
[out] pbstrPath
Alamat variabel yang dialokasikan penelepon yang menerima string yang berisi jalur ke file yang berbeda.
Pengguna metode ini perlu memeriksa untuk menentukan apakah jalur ini berakhir dengan garis miring terbelakang (\).
[out] pbstrFilespec
Alamat variabel yang dialokasikan penelepon yang menerima string yang berisi spesifikasi file dari file yang berbeda.
[out] pbRecursive
Alamat variabel yang dialokasikan penelepon yang menerima Boolean yang menentukan apakah spesifikasi file untuk file yang berbeda harus ditafsirkan secara rekursif. Jika TRUE, maka seluruh hierarki direktori perlu dicari untuk file yang cocok dengan spesifikasi file pbstrFilespec untuk menemukan file yang akan ditangani sebagai file yang berbeda selama pencadangan bertahap atau diferensial. Jika FALSE, hanya direktori akar yang perlu dicari.
[out] pbstrLsnString
Disiapkan untuk penggunaan masa mendatang.
[out] pftLastModifyTime
Alamat variabel yang dialokasikan penelepon yang menerima spesifikasi penulis dari waktu modifikasi terakhir untuk file perbedaan, yang dinyatakan sebagai struktur FILETIME .
Nilai kembali
Berikut ini adalah kode pengembalian yang valid untuk metode ini.
Nilai | Makna |
---|---|
|
Berhasil mengembalikan nilai atribut. |
|
Salah satu nilai parameter tidak valid. |
|
Pemanggil kehabisan memori atau sumber daya sistem lainnya. |
|
Tidak ada perbedaan file yang sesuai dengan indeks yang disediakan yang ditemukan. |
|
Dokumen XML tidak valid. Periksa log peristiwa untuk detailnya. Untuk informasi selengkapnya, lihat Penanganan Peristiwa dan Kesalahan di bawah VSS. |
Keterangan
GetDifferencedFile dapat dipanggil oleh pemohon atau penulis selama operasi pencadangan atau pemulihan.
Jika panggilan ke GetDifferencedFile berhasil, pemanggil bertanggung jawab untuk membebaskan string yang dikembalikan dalam parameter pbstrPath dan pbstrFilespec dengan memanggil fungsi SysFreeString .
Karena penulis dapat menunjukkan file yang berbeda dengan panggilan ke IVssComponent::AddDifferencedFilesByLastModifyTime kapan saja sebelum pencadangan file yang sebenarnya, biasanya saat menangani peristiwa PostSnapshot (CVssWriter::OnPostSnapshot), selama pencadangan GetDifferencedFile tidak berguna dipanggil sebelum pengembalian IVssBackupComponents::D oSnapshotSet telah berhasil dikembalikan.
Stempel waktu yang dikembalikan oleh GetDifferencedFile berlaku untuk semua file yang cocok dengan jalur yang dikembalikan (pbstrPath) dan spesifikasi file (pbstrFilespec).
Jika nilai stempel waktu yang dikembalikan oleh GetDifferencedFile (pftLastModifyTime) bukan nol, pemohon harus menghormati nilai ini terlepas dari catatan dan informasi sistem filenya sendiri dan menggunakannya untuk menentukan apakah file yang berbeda harus disertakan dalam cadangan diferensial atau bertambah bertahap.
Jika stempel waktu yang dikembalikan oleh GetDifferencedFile adalah nol, pemohon dapat menggunakan informasi sistem file dan catatannya sendiri untuk menentukan apakah file yang berbeda harus disertakan dalam cadangan diferensial atau bertambah bertahap.
File yang berbeda dapat berupa salah satu dari yang berikut ini:
- Anggota komponen saat ini atau, jika komponen menentukan set komponen, anggota subkomponennya yang ditambahkan ke komponen menggunakan IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles, atau IVssCreateWriterMetadata::AddDatabaseLogFiles
- File baru ditambahkan ke komponen oleh IVssComponent::AddDifferencedFilesByLastModifyTime
Ketika GetDifferencedFile mengembalikan file baru yang berbeda, jalur file tersebut (pbstrPath) harus cocok atau berada di bawah jalur yang sudah ada di komponen, atau salah satu subkomponennya (jika komponen menentukan set komponen).
Selain itu, file yang dikembalikan oleh GetDifferencedFile tidak boleh dikelola oleh komponen atau penulis.
Jika salah satu kriteria ini dilanggar, kriteria tersebut merupakan kesalahan pada bagian penulis dan harus dilaporkan.
Tidak ada metode di antarmuka IVssComponent yang memungkinkan untuk mengubah atau menambahkan pemetaan lokasi alternatif untuk file baru yang dikembalikan oleh GetDifferencedFilesByLastModifyTime. Jika pemetaan lokasi alternatif sesuai dengan file baru, maka lokasi alternatif tersebut akan digunakan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | vswriter.h (termasuk Vss.h, VsWriter.h) |
Pustaka | VssApi.lib |
Lihat juga
IVssComponent::AddDifferencedFilesByLastModifyTime