Rumah > pembangunan bahagian belakang > Golang > Adakah terdapat fungsi yang mengembalikan laluan mutlak dari laluan relatif kepada laluan yang lain?

Adakah terdapat fungsi yang mengembalikan laluan mutlak dari laluan relatif kepada laluan yang lain?

PHPz
Lepaskan: 2024-02-05 23:15:08
ke hadapan
1211 orang telah melayarinya

Adakah terdapat fungsi yang mengembalikan laluan mutlak dari laluan relatif kepada laluan yang lain?

Kandungan soalan

Saya perlu dapat menentukan tempat fail berdasarkan laluan yang digunakan dalam fail yang berbeza. Mungkin lebih baik menggunakan contoh:

Ini ialah struktur direktori:

/
  foo
    bar.txt
    text.txt
  bar
    main.go
Salin selepas log masuk

Dalam fail text.txt, bar.txt ialah ./bar.txt引用,它可以工作,但是如果我尝试使用filepath.abs​​("从main.go找到<code>./bar.txt的绝对路径./bar.txt") 那么它将返回 /bar/bar.txt kerana ia menganggap .

Daripada dokumentasi: abs mengembalikan perwakilan mutlak laluan. Jika laluan itu bukan mutlak, ia akan digabungkan dengan direktori kerja semasa untuk menukarnya kepada laluan mutlak.

Soalan saya ialah bagaimana untuk mendapatkan laluan mutlak ./bar.txt apabila ia adalah ./bar.txt./bar.txt . Berkaitan dengan text.txt.

Maaf soalan ini mungkin terlalu rumit, tetapi saya tidak dapat memikirkan cara yang lebih baik untuk menunjukkan contoh.


Jawapan Betul


Jawapan ini hampir sampai tetapi saya berjaya mengubah suainya supaya sesuai dengan saya.

func getabs(path string, locationpath string) string {
    new_file_path := path
    new_abs_path := path
    if filepath.isabs(new_file_path) {
        new_abs_path = new_file_path
    } else {
        new_abs_path, _ = filepath.abs(filepath.join(locationpath, path))
        fmt.println(new_abs_path, locationpath)
    }
    return new_abs_path
}
Salin selepas log masuk

Hanya tambahkan laluan ke fail ke direktori di mana fail yang merujuknya berada.

Contohnya:

fmt.Println(getAbs("./bar.txt", "/foo")) //foo is the directory that text.txt is in which references bar.txt is in
Salin selepas log masuk

Atas ialah kandungan terperinci Adakah terdapat fungsi yang mengembalikan laluan mutlak dari laluan relatif kepada laluan yang lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan