创建参数 @directoryPath 指定目录的同步监视器。
此监视器会阻塞当前线程。
创建目录变更异步监视器。
参数 @onFileChange 必须指定文件变更事件回调函数。
此参数则会调用 fsys.dirWatcher.thread 创建后台监视线程,
只能在界面线程创建目录的异步监视器,因为回调依赖窗口消息循环。
回调函数仍在当前界面线程内执行(因此不需要考虑跨线程规则)。
回调参数分别为: filename,action,actionText
参数 @flags 可选用 FILE_NOTIFY_CHANGE 前缀的常量数值指定选项。
参数 @subTree 可选指定是否监视子目录。
目录监视器
返回对象:fsysDirWatcherThreadObject
fsys.dirWatcher.thread(
function(filename,action,actionText){
},/*
创建目录变更异步监视器线程。
1. 参数 @onFileChange 必须指定文件变更事件回调函数。
只能在界面线程创建目录的异步监视器,因为回调依赖窗口消息循环。
回调函数仍在当前界面线程内执行(因此不需要考虑跨线程规则)。
回调参数分别为: filename,action,actionText
* 回调参数 filename 为发生变更的文件路径,
* 回调参数 action 为 _FILE_ACTION_ 前缀的常量数值,
* 回调参数 actionText 的值为 "added" "removed" "modified" "renamed:old-name" "renamed:new-name" 之一。
2. 参数 @directoryPath 指定要监视的目录。
3. 参数 @flags 可选用 _FILE_NOTIFY_CHANGE_ 前缀的常量数值指定选项。
4. 参数 @subTree 可选指定是否监视子目录。
*/);
变更类型
变更类型说明
文件名
Unicode文件名
关闭同步目录监视器或者退出异步目录监视器线程。
for filename,action,actionText in dirWatcherObject.eachChanges(){
print( filename,actionText,action & 0x10/*_FILE_NOTIFY_CHANGE_LAST_WRITE*/ )
/*同步目录监视器可使用此迭代器遍历文件变更事件。
迭代变量 filename,action,actionText 用法与 onFileChange 回调函数相同。*/
}
同步目录监视器可使用此函数读取目录发生的变更。
返回值为数组,数组成员为一个table对象
filename字段表明变更的目录,action字段表明变更类型
action为 FILE_NOTIFY_CHANGE 前缀的常量标志
退出异步目录监视器线程。
_FILE_ACTION_ADDED=1
_FILE_ACTION_MODIFIED=3
_FILE_ACTION_REMOVED=2
_FILE_ACTION_RENAMED_NEW_NAME=5
_FILE_ACTION_RENAMED_OLD_NAME=4