本文整理汇总了Golang中github.com/howeyc/fsnotify.FileEvent.IsAttrib方法的典型用法代码示例。如果您正苦于以下问题:Golang FileEvent.IsAttrib方法的具体用法?Golang FileEvent.IsAttrib怎么用?Golang FileEvent.IsAttrib使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/howeyc/fsnotify.FileEvent
的用法示例。
在下文中一共展示了FileEvent.IsAttrib方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: handlecb
func (this *Watcher) handlecb(v *triggered, ev *fsnotify.FileEvent) {
if !v.canrun() {
return
}
defer v.setLastUpdate()
// in windows some events are sent 3 times
c := time.Tick(g_cooldown)
<-c
var t EvType
// execute
if ev.IsModify() {
t = C_Modify
} else if ev.IsCreate() {
t = C_Create
} else if ev.IsDelete() {
t = C_Delete
} else if ev.IsRename() {
t = C_Rename
} else if ev.IsAttrib() {
t = C_Attrib
} else {
fmt.Fprintln(os.Stderr, "unknown event")
return
}
this.cb(&WatchEvent{
Type: t,
Fpath: ev.Name,
})
}
示例2: itemChangedHandler
func (self *Launcher) itemChangedHandler(ev *fsnotify.FileEvent, name string, info map[string]ItemChangedStatus) {
if _, ok := info[name]; !ok {
info[name] = ItemChangedStatus{
make(chan bool),
make(chan bool),
make(chan bool),
make(chan bool),
0,
}
}
if ev.IsRename() {
logger.Info("renamed")
select {
case <-info[name].renamed:
default:
}
go func() {
select {
case <-info[name].notRenamed:
return
case <-time.After(time.Second):
<-info[name].renamed
if true {
self.emitItemChanged(name, SoftwareStatusDeleted, info)
}
}
}()
info[name].renamed <- true
} else if ev.IsCreate() {
self.emitItemChanged(name, SoftwareStatusCreated, info)
go func() {
select {
case <-info[name].renamed:
// logger.Info("not renamed")
info[name].notRenamed <- true
info[name].renamed <- true
default:
// logger.Info("default")
}
select {
case <-info[name].notCreated:
return
case <-time.After(time.Second):
<-info[name].created
}
}()
info[name].created <- true
} else if ev.IsModify() && !ev.IsAttrib() {
go func() {
select {
case <-info[name].created:
info[name].notCreated <- true
}
select {
case <-info[name].renamed:
self.emitItemChanged(name, SoftwareStatusModified, info)
default:
}
}()
} else if ev.IsAttrib() {
go func() {
select {
case <-info[name].renamed:
<-info[name].created
info[name].notCreated <- true
default:
}
}()
} else if ev.IsDelete() {
if true {
self.emitItemChanged(name, SoftwareStatusDeleted, info)
}
}
}