`没有这样的文件或目录` `os.Remove` 在 go 例程中

`no such file or directory` with `os.Remove` inside go routine

我使用 Cobra 框架向我的 CLI 应用程序添加了一个新命令。该命令应该启动接受套接字连接的 TCP 服务器。它接收一个有效负载,该有效负载是 file/directory 的 absolute 路径,并尝试删除它。这是命令的代码

package cmd

import (
    "bufio"
    "fmt"
    "net"
    "os"

    "github.com/spf13/cobra"
    "wpgenius.io/util"
)

var cachePurgerCmd = &cobra.Command{
    Use:   "cache-purger",
    Short: "Listen for request to purge NGINX page cache",
    Run: func(cmd *cobra.Command, args []string) {
        dstream, err := net.Listen("tcp", ":9876")

        if err != nil {
            util.HandleError(err, "Can not start listener..")
            return
        }

        fmt.Println("Listening for purge requests...")

        defer dstream.Close()

        for {
            con, err := dstream.Accept()

            if err != nil {
                util.HandleError(err, "Can not accept connection")
                os.Exit(1)
            }

            go handleRequest(con)
        }
    },
}

func handleRequest(con net.Conn) {
    path, err := bufio.NewReader(con).ReadString('\n')

    if err != nil {
        return
    }

    defer con.Close()

    err = os.Remove(path)

    if err != nil {
        con.Write([]byte("ERROR"))
        fmt.Println(err)
        util.HandleError(err, "Can not delete cache file")
        return
    }

    con.Write([]byte("SUCCESS"))
}

func init() {
    rootCmd.AddCommand(cachePurgerCmd)
}

虽然 file/directory 存在,但我仍然得到 no such file or directory 错误。 我通过简单地将 os.Remove 添加到 main 函数来进行完整性检查,以确保它与路径无关,我可以看到它成功删除了 file/directory.

我不确定它是否与 go routingtcp server!

有关

非常感谢任何帮助!

我猜你输入的路径中有\n这个点。