gf: github.com/johng-cn/gf/g/os/gfsnotify Index | Files

package gfsnotify

import "github.com/johng-cn/gf/g/os/gfsnotify"

Package gfsnotify provides a platform-independent interface for file system notifications.

文件监控.

Index

Package Files

gfsnotify.go gfsnotify_event.go gfsnotify_filefunc.go gfsnotify_watcher.go gfsnotify_watcher_loop.go

Constants

const (
    REPEAT_EVENT_FILTER_INTERVAL = 1 // (毫秒)重复事件过滤间隔
)

func Remove Uses

func Remove(path string) error

递归移除对指定文件/目录的所有监听回调

func RemoveCallback Uses

func RemoveCallback(callbackId int) error

根据指定的回调函数ID,移出指定的inotify回调函数

type Callback Uses

type Callback struct {
    Id   int                // 唯一ID
    Func func(event *Event) // 回调方法
    Path string             // 监听的文件/目录
    // contains filtered or unexported fields
}

注册的监听回调方法

func Add Uses

func Add(path string, callbackFunc func(event *Event), recursive ...bool) (callback *Callback, err error)

添加对指定文件/目录的监听,并给定回调函数;如果给定的是一个目录,默认非递归监控。

type Event Uses

type Event struct {
    Path    string   // 文件绝对路径
    Op      Op       // 触发监听的文件操作
    Watcher *Watcher // 事件对应的监听对象
    // contains filtered or unexported fields
}

监听事件对象

func (*Event) IsChmod Uses

func (e *Event) IsChmod() bool

文件/目录修改权限

func (*Event) IsCreate Uses

func (e *Event) IsCreate() bool

文件/目录创建

func (*Event) IsRemove Uses

func (e *Event) IsRemove() bool

文件/目录删除

func (*Event) IsRename Uses

func (e *Event) IsRename() bool

文件/目录重命名

func (*Event) IsWrite Uses

func (e *Event) IsWrite() bool

文件/目录修改

func (*Event) String Uses

func (e *Event) String() string

type Op Uses

type Op uint32

按位进行识别的操作集合

const (
    CREATE Op  = 1 << iota
    WRITE
    REMOVE
    RENAME
    CHMOD
)

必须放到一个const分组里面

type Watcher Uses

type Watcher struct {
    // contains filtered or unexported fields
}

监听管理对象

func New Uses

func New() (*Watcher, error)

创建监听管理对象,主要注意的是创建监听对象会占用系统的inotify句柄数量,受到 fs.inotify.max_user_instances 的限制

func (*Watcher) Add Uses

func (w *Watcher) Add(path string, callbackFunc func(event *Event), recursive ...bool) (callback *Callback, err error)

添加监控,path参数支持文件或者目录路径,recursive为非必需参数,默认为非递归监控(当path为目录时)。 如果添加目录,这里只会返回目录的callback,按照callback删除时会递归删除。

func (*Watcher) Close Uses

func (w *Watcher) Close()

关闭监听管理对象

func (*Watcher) Remove Uses

func (w *Watcher) Remove(path string) error

递归移除对指定文件/目录的所有监听回调

func (*Watcher) RemoveCallback Uses

func (w *Watcher) RemoveCallback(callbackId int)

根据指定的回调函数ID,移出指定的inotify回调函数

Package gfsnotify imports 12 packages (graph). Updated 2019-01-18. Refresh now. Tools for package owners.