"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso detectar alterações de arquivo no Go usando a pesquisa de status?

Como posso detectar alterações de arquivo no Go usando a pesquisa de status?

Postado em 2025-02-16
Navegar:381

How Can I Detect File Changes in Go Using Status Polling?

detecte as alterações do arquivo em Go usando o status Polling

em Go, você pode detectar quando um arquivo muda usando a pesquisa de status. Embora o Go não ofereça um equivalente direto à função unix fcntl () para notificações de alteração de arquivo, a pesquisa de status fornece uma solução de plataforma cruzada:

func watchFile(filePath string) error {
    initialStat, err := os.Stat(filePath)
    if err != nil {
        return err
    }

    for {
        stat, err := os.Stat(filePath)
        if err != nil {
            return err
        }

        if stat.Size() != initialStat.Size() || stat.ModTime() != initialStat.ModTime() {
            break
        }

        time.Sleep(1 * time.Second)
    }

    return nil
}

USAGE:

doneChan := make(chan bool)

go func(doneChan chan bool) {
    defer func() {
        doneChan  

Esta solução não oferece a eficiência de uma chamada do sistema, mas fornece uma abordagem simples que funciona em todas as plataformas e pode ser suficiente para vários casos de uso.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3