识别现有文件夹[重复]

I have an issue where it seems go is telling me that a folder doesn't exist, when it clearly does.

path, _ := reader.ReadString('
')
path, err := expand(path)
fmt.Println("Path Expanded: ", path, err)

if err == nil {
    if _, err2 := os.Lstat(path); err2 == nil {
        fmt.Println("Valid Path")
    } else if os.IsNotExist(err2) {
        fmt.Println("Invalid Path")
        fmt.Println(err2)
    } else {
        fmt.Println(err2)
    }
}

The expand function simply translates the ~ to the homeDir.

func expand(path string) (string, error) {
    if len(path) == 0 || path[0] != '~' {
        return path, nil
    }

    usr, err := user.Current()
    if err != nil {
        return "", err
    }
    return filepath.Join(usr.HomeDir, path[1:]), nil
}

If I input the value of ~ it correctly translates it to /home/<user>/ but it ultimately states that the folder does not exist, even though it clearly does, and I know I have access to it, so it doesn't seem to be a permissions thing.

if I try /root/ as the input, I correctly get a permissions error, I am ok with that. But I expect my ~ directory to return "Valid Path"

My error is almost always : no such file or directory

I am on Lubuntu 19.xx and it is a fairly fresh install, I am running this app from ~/Projects/src/Playground/AppName and I am using the bash terminal from vscode.

I have also tried both Lstat and Stat unsuccessfully, not to mention a ton of examples and different ways. I am sure this is some underlying linux thing that I don't understand...

</div>

The answer to this is that I was not trimming the ReadString which used the delimiter of , by adding strings.Trim(path, " "), it corrected my issue.