monitor_directory


Description:

[ CCode ( vfunc_name = "monitor_dir" ) ]
public abstract FileMonitor monitor_directory (FileMonitorFlags flags, Cancellable? cancellable = null) throws IOError

Obtains a directory monitor for the given file.

This may fail if directory monitoring is not supported.

If cancellable is not null, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error g_io_error_cancelled will be returned.

It does not make sense for flags to contain g_file_monitor_watch_hard_links, since hard links can not be made to directories. It is not possible to monitor all the files in a directory for changes made via hard links; if you want to do this then you must register individual watches with monitor.

Example: Directory monitoring:

public static int main () {
try {
File file = File.new_for_path (Environment.get_home_dir ());
FileMonitor monitor = file.monitor_directory (FileMonitorFlags.NONE, null);
print ("Monitoring: %s\n", file.get_path ());

monitor.changed.connect ((src, dest, event) => {
if (dest != null) {
print ("%s: %s, %s\n", event.to_string (), src.get_path (), dest.get_path ());
} else {
print ("%s: %s\n", event.to_string (), src.get_path ());
}
});

new MainLoop ().run ();
} catch (Error err) {
print ("Error: %s\n", err.message);
}
return 0;
}

valac --pkg gio-2.0 GLib.File.monitor_directory.vala

Parameters:

this

input File

flags

a set of FileMonitorFlags

cancellable

optional Cancellable object, null to ignore

Returns:

a FileMonitor for the given this, or null on error. Free the returned object with unref.