Dengan OS Linux, ada subsistem ionotify yang memberi tahu aplikasi tentang perubahan sistem file.
Namun, saya sebagian besar adalah pengguna Windows, jadi saya ingin tahu apakah ada cara serupa untuk memantau perubahan sistem file?
Dengan OS Linux, ada subsistem ionotify yang memberi tahu aplikasi tentang perubahan sistem file.
Namun, saya sebagian besar adalah pengguna Windows, jadi saya ingin tahu apakah ada cara serupa untuk memantau perubahan sistem file?
Jawaban:
Lihat API FindFirstChangeNotification , atau FileSystemWatcher mitra .NET
Jika Anda menggunakan .net , gunakan FileSystemWatcher
. Info lebih lanjut di sini: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
Jika Anda menggunakan C , penggunaan FindFirstChangeNotification
, FindNextChangeNotification
, ReadDirectoryChangesW
. Info lebih lanjut di sini: http://msdn.microsoft.com/en-us/library/aa365261(VS.85).aspx
Di OSX , api yang relevan adalah fsevents
api.
Mereka semua sedikit berbeda satu sama lain, dan semuanya memiliki keandalan yang dipertanyakan dalam kasus edge. Secara umum, Anda tidak dapat bergantung pada apis ini untuk melihat secara lengkap semua perubahan 100% setiap saat. Kebanyakan orang yang menggunakan pemantauan sistem file menggabungkannya dengan pemindaian berkala untuk mengkompensasi informasi yang hilang atau tidak lengkap dari push api.
lihat ini: inotify-win, port dari alat inotifywait untuk Windows
dan juga ini: inotify-tools
Agak terlambat tapi ...
Windows memiliki fasilitas yang mirip dengan acara OSX di mana Anda dapat memantau acara tanpa menjalankan aplikasi. Jurnal Windows USN melacak semua perubahan file. Jeffrey Richter (penulis Advanced Windows) menulis artikel hebat dengan contoh kerja untuk MSDN Journal. Pembaruan : artikel sekarang dari archive.org karena MSJ tidak lagi online di MS.
Dokumentasi MSDN untuk Jurnal Perubahan USN.
Jurnal Perubahan USN mungkin lebih baik jika Anda membuat aplikasi seperti alat cadangan atau indeks yang perlu memantau seluruh volume.
FileSystemWatcher
| FindFirstChangeNotification
PhillipBrandonHolmes sedang berbicara tentang ?
FileSystemWatcher () tidak dapat diandalkan terutama karena penanganan error untuk buffer pengawas kurang lebih tidak lengkap. Karena kurangnya jalur dan informasi penanganan kesalahan yang mendetail, Microsoft tidak memberi Anda cara untuk memulihkan atau memeriksa direktori kerja secara manual.
JNotify untuk Windows juga tidak dapat diandalkan karena bug ini ^ berasal dari win32. JNotify menggunakan win32. Jadi, ini tidak berbeda dengan FileSystemWatcher ().
Saya melakukan sedikit pencarian, sepertinya saya ingat pernah melihat sesuatu yang mirip untuk Windows. Ada FileSystemWatcher untuk .NET. Ini terutama untuk NT atau XP dan seterusnya.