S: Bagaimanakah saya boleh mengesan dengan cekap hanya fail yang dipadam, ditukar dan dibuat pada volum NTFS ?
J: Anda boleh menggunakan fungsi FSCTL_ENUM_USN_DATA untuk menghitung semua fail pada volum. Fungsi ini menyediakan senarai rekod fail yang termasuk bendera fail dan USN, membolehkan anda mengenal pasti perubahan dengan cepat.
Butiran Pelaksanaan:
Sampel kod yang disediakan menggunakan FSCTL_ENUM_USN_DATA untuk mendapatkan semula rekod fail, menapis perubahan dan memaparkan maklumat yang berkaitan.
<code class="c++">#include <Windows.h> #include <stdio.h> // ... void check_record(USN_RECORD *record) { // Check for specific file name or criteria // ... show_record(record); } int main(int argc, char ** argv) { // Initialize variables // ... for (;;) { // Call FSCTL_ENUM_USN_DATA to get file records // ... record = (USN_RECORD *)((USN *)buffer + 1); recordend = (USN_RECORD *)(((BYTE *)buffer) + bytecount); while (record < recordend) { filecount++; check_record(record); record = (USN_RECORD *)(((BYTE *)record) + record->RecordLength); } mft_enum_data.StartFileReferenceNumber = nextid; } // ... }</code>
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Cekap Mengesan Perubahan Fail pada Jilid NTFS dengan FSCTL_ENUM_USN_DATA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!