Re: problem of monitoring directory

>     I am very sorry to trouble you, but I can not handle a problem about my
> program for a long time, I hope someone can help me, thank you very much!
>      The program is to monitor directories and report the events occoured in
> directory shuch as deleting files , creating files and so on. My program can
> monitor the directory and its child diectroy, and report the event that
> happened on a single file or directory, but it can only monitor the toppest
> directory and do not report the events when copy diredtory which contains
> many files.
>    My code is in attachment, I would appreciate very much if someone help me
> to handle this problem, thank you very much!

GFileMonitor is not recursive (inotify in Linux is not recursive, and
the windows backend doesn't use the recursive monitoring operation).
Therefore, if you are monitoring a directory "A" and you copy inside
another directory "B" with lots of files inside, you will only get 1
event for "B" being created.

If you want to get events for all files within "B", you will need to
add a new GFileMonitor for the "B" directory as soon as you get the
CREATED event for it; and after that crawl the "B" directory
(g_file_enumerate_children() for example) so that you find files that
may have been already created in the meantime (between the directory
"B" being created and your program adding the monitor on it).

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]