addWatchTargetListRecursive(3) Library Functions Manual addWatchTargetListRecursive(3)

addWatchTargetListRecursive - 增加需要监听的文件列表

#include <libkyfilewatcher.hpp>


class KYSDK_FILEWATCHER::FileWatcher


QStringList addWatchTargetListRecursive(QStringList urlList, FileWatcherType type = PERIODIC, int attr = OPEN|CLOSE|MODIFY|DELETE, int maxdepth = 5, int recurType = DIR|REGULAR);

Link with -lkyfilewatcher.

The main function of the interface is to add a list of files that need to be monitored.

The argument urlList is a list of file paths.

The argument type is the file watcher type,which is an enumeration type. The content is as follows:


enum FileWatcherType{
ONESHOT = 0, // 仅报送一次事件。请注意事件发生后,监听符号会从监听列表中移除,下次再用需要重新add
PERIODIC,
NEVER
};

The argument attr is the file watcher attribute,which is an enumeration type. The content is as follows:


enum FileWatcherAttribute{
ACCESS = IN_ACCESS,
CREATE = IN_CREATE,
MODIFY = IN_MODIFY,
DELETE = IN_DELETE | IN_DELETE_SELF,
ATTRIB = IN_ATTRIB,
MOVE = IN_MOVE | IN_MOVE_SELF,
OPEN = IN_OPEN,
CLOSE = IN_CLOSE,
ALL = IN_ALL_EVENTS
};

The argument maxdepth is the maximum depth specified for traversal search.

The argument recurType is the recursive type,which is an enumeration type. The content is as follows:


enum RecursiveType{
DIR = 1 << 0,
REGULAR = 1 << 1,
HIDDEN = 1 << 2,
TMPFILE = 1 << 3, //认为那些以~开头的是临时文件
ALLFILE = HIDDEN | TMPFILE | DIR | REGULAR
};

#include <QCoreApplication>
#include <QDebug>
#include "libkyfilewatcher.hpp"
using namespace KYSDK_FILEWATCHER;
int main(int argc, char *argv[])
{
    KYSDK_FILEWATCHER::FileWatcher watcher;
    watcher.addWatchTargetRecursive("/home/kylin/", PERIODIC, ALL, 3, REGULAR);
    getchar();
//    qDebug() << "update attr test";
//    watcher.updateWatchTargetAttribute("/data/testcode/test.c", DELETE);
//    getchar();
//    qDebug() << "re-add test";
//    watcher.addWatchTarget("/data/testcode/test.c", PERIODIC, ALL);
//    getchar();
//    qDebug() << "update oneshot test";
//    watcher.updateWatchTargetType("/data/testcode/test.c", ONESHOT);
//    getchar();
//    qDebug() << "remove target test";
//    watcher.removeWatchTarget("/data/testcode/test.c");
//    getchar();
    watcher.clearWatchList();
    return 0;
}

These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: addWatchTargetRecursive(), removeWatchTargetRecursive(), clearWatchList(), pauseWatcher() and restartWatcher().

addWatchTargetRecursive(3), removeWatchTargetRecursive(3), clearWatchList(3), pauseWatcher(3) and restartWatcher(3).

Wed Sep 20 2023 My Project