"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo detectar los cambios de archivo en GO usando la encuesta de estado?

¿Cómo puedo detectar los cambios de archivo en GO usando la encuesta de estado?

Publicado el 2025-02-16
Navegar:360

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

Detectar los cambios de archivo en GO usando el estado de la encuesta

en Go, puede detectar cuándo un archivo cambia usando la encuesta de estado. Mientras que GO no ofrece un equivalente directo a la función UNIX fcntl () para notificaciones de cambio de archivo, Status Polling proporciona una solución 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
}

use:

doneChan := make(chan bool)

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

Esta solución no ofrece la eficiencia de una llamada del sistema pero proporciona un enfoque simple que funciona en todas las plataformas y puede ser suficiente para varios casos de uso.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3