Не удается найти файл или каталог на диске, который существует - PullRequest
0 голосов
/ 22 апреля 2019

В настоящее время я расследую иди, чтобы узнать больше об этом, но я нашел дорогу в стену, которую я не могу пробить. То, что я пытаюсь сделать, это взять пользовательский ввод для каталога или файла и т. Д.: /Users/me/Documents/test.sql и скопировать его в другой каталог и т. Д .: / usr / local / share / myprogram

Проблема в том, что os.Lstat не находит его ни с чем, что я пытаюсь ...

Я знаю, что test.sql существует, если я использую open /Users/me/Documents/test.sql в терминале, что Go не говорит, что не может найти, мне удается открыть его, поэтому он есть .

Почему это происходит? Это что-то с go, и путь установлен только для поиска файлов в рабочем каталоге? И как мне это преодолеть?

os.Lstat("/Users/me/Documents/test.sql")

Я также пытался использовать filepath

toPath, _ := filepath.Abs("/Users/me/Documents/test.sql")
os.Lstat(toPath)

Я ожидаю, что этот файл будет найден, но это не

1 Ответ

0 голосов
/ 22 апреля 2019

docs говорит:

Lstat возвращает FileInfo, описывающее названный файл.Если файл является символической ссылкой, возвращаемое FileInfo описывает символическую ссылку.Lstat не пытается перейти по ссылке.Если есть ошибка, она будет иметь тип * PathError.

Вот пример, который вы можете попробовать:

package main

import (
    "fmt"
    "log"
    "os"
)

func main() {
    desc, err := os.Lstat("/Users/me/Documents/test.sql")
    if err != nil {
        // prints the error and stop
        log.Fatal(err)
    }
    // prints the filename
    fmt.Println(desc.Name())
}

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