Is FindFirstChangeNotification die beste API te gebruik vir lêerstelsel verandering kennisgewing op vensters?

StackOverflow https://stackoverflow.com/questions/16615

Vra

Ek is nuut by vensters programmering en ek probeer om in kennis gestel word van alle veranderings aan die lêer stelsel (soortgelyk aan die inligting wat FileMon van Sysinternals uitstallings, maar via 'n API). Is 'n FindFirstChangeNotification vir elke (nie-netwerk, nie-substed) ry my beste bet of is daar ander meer geskikte C / C ++ APIs?

Was dit nuttig?

Oplossing

FindFirstChangeNotification is goed, maar vir effens meer uiteindelike krag wat jy moet gebruik ReadDirectoryChangesW. (Trouens, dit is selfs aanbeveel in die dokumentasie!)

Dit maak nie 'n funksie wyser vereis, beteken dit vereis dat jy 'n rou buffer hand te ontsyfer, dit maak gebruik van Unicode lêername, maar dit is oor die algemeen beter en meer buigsaam.

Aan die ander kant, as jy wil om te doen wat FileMon doen, jy moet waarskynlik doen wat FileMon doen en gebruik IFS te skep en installeer 'n lêer stelsel filter .

Ander wenke

Daar is ander maniere om dit te doen, maar die meeste van hulle betrek moeite van jou kant (of neem prestasie van jou jeug, of jy het 'n draad te sluit om dit te gebruik, ens). FindFirstChangeNotification is 'n bietjie ingewikkeld as jy nie gewoond is aan die hantering van funksie wysers, ens, maar dit het die hoofde van die kry van die bedryfstelsel om die grootste deel van die werk te doen vir jou.

Eintlik FileSystemWatcher werk perfek met gedeelde netwerk dryf. Ek gebruik dit nou in 'n aansoek wat, onder andere, monitor die lêerstelsel vir veranderinge. (Www.tabbles.net).

Jy kan FileSystemWatcher klas gebruik. Baie effektief, maar kan nie werk met Network gedeel dryf.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top