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

PHPz
Lepaskan: 2024-02-05 23:15:08
ke hadapan
1120 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找到./bar.txt的绝对路径./bar.txt")那么它将返回/bar/bar.txtkerana 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.txtapabila 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


Jawapanini 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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!