尝试检查路径时出现错误

时间:2019-01-28 09:59:19

标签: go

我正在尝试检查golang应用程序中的windows目录。 这是我的代码

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 个答案:

答案 0 :(得分:3)

您可以使用path包来处理urls(文件路径为'path/filepath'),这也有助于平台独立性。因此,您可以按照以下步骤创建路径

givenPath = filepath.Join(DirectoryName, path)

还有另一种方法

path := strings.Join([]string{DirectoryName, path}, string(os.PathSeparator))

答案 1 :(得分:1)

在用双引号引起来的Go字符串中,反斜杠开始转义代码,例如\n\u2318。为避免这种情况,您有两种选择:

  • 使用双反斜杠(\\),例如"C:\\Users"
  • 使用反引号(`)而不是双引号来定义“原始字符串”,例如`C:\Users`

Further reading