howeyc / fsnotify

File system notification for Go
BSD 3-Clause "New" or "Revised" License
1.99k stars 252 forks source link

it is called twice when one file is modified in windows !! #106

Open xym opened 10 years ago

xym commented 10 years ago
package main

import (
    // "bytes"
    "fmt"
    "github.com/howeyc/fsnotify"
    "log"
    //"os/exec"
    //"strings"
)

func main() {
    watcher, err := fsnotify.NewWatcher()
    if err != nil {
        log.Fatal(err)
    }

    done := make(chan bool)

    // Process events
    go func() {
        for {
            select {

                        //  it is called twice when one file is modified in windows !!
            case ev := <-watcher.Event:
                        fmt.Println(ev)
            case err := <-watcher.Error:
                log.Println("error:", err)
            }
        }
    }()

    err = watcher.Watch("c:\\test")
    if err != nil {
        log.Fatal("not exists")

    }
    <-done

    watcher.Close()
}
nathany commented 10 years ago

@xym Thanks for reporting the issue.

Are you modifying the file in an editor? If so, it may be this issue: https://github.com/go-fsnotify/fsnotify/issues/17

Can you touch a file in Windows (perhaps in PowerShell?).

FYI, development of fsnotify has moved to: https://github.com/go-fsnotify/fsnotify. Though little has changed with the Windows support, so this is sure to still be an issue. :frowning:

Other issues tagged with Windows.