为了账号安全,请及时绑定邮箱和手机立即绑定

`no such file or directory` with `os.Remove`

`no such file or directory` with `os.Remove`

Go
茅侃侃 2022-12-19 10:32:23
我使用 Cobra 框架向我的 CLI 应用程序添加了一个新命令。该命令应该启动接受套接字连接的 TCP 服务器。它接收一个有效负载,它是absolute一个文件/目录的路径,并尝试删除它。这是命令的代码package cmdimport (    "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)}尽管文件/目录存在,但我仍然会no such file or directory出错。我通过简单地将它添加os.Remove到main函数中来进行健全性检查,以确保它与路径无关,并且我可以看到它成功删除了文件/目录。我不确定它是否go routing与tcp server!任何帮助将不胜感激!
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我想重点是您输入的路径中的 \n 。



查看完整回答
反对 回复 2022-12-19
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信