我正在尝试检查windows我的 golang 应用程序中的目录。这是我的代码func createWalletDirectory(path string) (err error) { _, err = os.Stat(path) if os.IsNotExist(err) { return err } path = filepath.FromSlash(path) path = path + string(os.PathSeparator) + DirectoryName err = os.Mkdir(path, 0666) return}所以在函数的第一行我得到一个错误看起来像这样字符串转义码中的无效字符“i”示例路径:C:\Users注意:我通过 POST 请求从用户那里获得的路径所以我需要编写一个代码来检查跨平台路径。我该如何解决这个错误?
2 回答
![?](http://img1.sycdn.imooc.com/54dc06a60001ef0401000100-100-100.jpg)
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
您可以使用path
package 来处理 urls(' path/filepath
' 用于文件路径),这也有助于平台独立性。所以您可以执行以下操作来创建路径
givenPath = filepath.Join(DirectoryName, path)
还有另一种方法可以做到这一点
path := strings.Join([]string{DirectoryName, path}, string(os.PathSeparator))
![?](http://img1.sycdn.imooc.com/5458477300014deb02200220-100-100.jpg)
哆啦的时光机
TA贡献1779条经验 获得超6个赞
在用双引号括起来的 Go 字符串中,反斜杠开始转义码,例如\n
or \u2318
。为避免这种情况,您有两种选择:
使用双反斜杠 (
\\
),例如"C:\\Users"
使用反引号 (
`
) 而不是双引号来定义“原始字符串”,例如`C:\Users`
- 2 回答
- 0 关注
- 96 浏览
添加回答
举报
0/150
提交
取消