"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como faço para expandir o caractere tilde (~) para o diretório doméstico em Go?

Como faço para expandir o caractere tilde (~) para o diretório doméstico em Go?

Postado em 2025-02-06
Navegar:187

How Do I Expand the Tilde (~) Character to the Home Directory in Go?

expandindo o diretório doméstico em go

em go, expandindo o caractere tilde (~) para o diretório doméstico do usuário é crucial para manuseio Caminhos relativos nos programas. No entanto, o pacote de caminho interno não suporta esse recurso. A função atual () nos permite obter os detalhes do usuário atual, incluindo o diretório inicial.

import ( "OS/Usuário" "Path/filepath" ) // Função utilitária para expandir o personagem Tilde para o diretório inicial do usuário Func ExpandTilde (String de caminho) String { CurrentUser, _: = user.current () Homedir: = CurrentUser.homedir se caminho == "~" { Retornar Homedir } else if strings.hasprefix (caminho, "~/") { retornar filepath.join (Homedir, caminho [2:]) } caminho de retorno }

import (
    "os/user"
    "path/filepath"
)

// Utility function to expand the tilde character to the user's home directory
func expandTilde(path string) string {
    currentUser, _ := user.Current()
    homeDir := currentUser.HomeDir

    if path == "~" {
        return homeDir
    } else if strings.HasPrefix(path, "~/") {
        return filepath.Join(homeDir, path[2:])
    }
    return path
}

incorporando Essa funcionalidade em seu código existente, agora você pode expandir o personagem Tilde no seu caminho de destino:

importar "Path" // var destino *string é a entrada do usuário func expandpath () { if Path.isabs (*Destination) { retornar } cwd, err: = os.getwd () CheckError (ERR) *destino = Path.Join (CWD, *Destino) }

import "path"

// var destination *String is the user input

func expandPath() {
        if path.IsAbs(*destination) {
                return
        }
        cwd, err := os.Getwd()
        checkError(err)
        *destination = path.Join(cwd, *destination)
}
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3