Получение ошибки при попытке проверить путь - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь проверить windows dir в моем приложении 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
}

Итак, в первой строке функции я получаю сообщение об ошибке:

Пример пути: C:\Users

Примечание: путь, который я получаю от пользователей с помощью запроса POST. Поэтому мне нужно создать код, который будет проверять кроссплатформенные пути.Как я могу решить эту ошибку?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Вы можете использовать пакет path для работы с URL-адресами ('path/filepath' для путей к файлам), что также способствует независимости платформы.Таким образом, вы можете сделать следующее, чтобы создать путь

givenPath = filepath.Join(DirectoryName, path)

. Есть и другой способ сделать это

path := strings.Join([]string{DirectoryName, path}, string(os.PathSeparator))
0 голосов
/ 28 января 2019

В строках Go, заключенных в двойные кавычки, обратная косая черта запускает escape-код, например, \n или \u2318.Чтобы избежать этого, у вас есть два варианта:

  • использовать двойную обратную косую черту (\\), например, "C:\\Users"
  • использовать обратную косую черту (`) вместо двойных кавычек дляопределить «необработанную строку», например, `C:\Users`

Дальнейшее чтение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...