gpt4 book ai didi

go - filepath.Join 删除点

转载 作者:IT王子 更新时间:2023-10-29 02:27:05 25 4
gpt4 key购买 nike

我在为 rsync 创建路径时遇到问题。

x := filepath.Join("home", "my_name", "need_folder", ".")
fmt.Println(x)

我得到 "home/my_name/need_folder",但需要 "home/my_name/need_folder/.",没有 concat 如何修复?在名为“.”的 linux 文件夹中并非不可能。

谢谢!

最佳答案

你不能用 filepath.Join() 做到这一点正如其文档所述:

Join calls Clean on the result...

并且由于 . 表示“当前”目录,它将被 filepath.Clean() 删除:

It applies the following rules iteratively until no further processing can be done:

  1. [...]

  2. Eliminate each . path name element (the current directory).

事实上你不能用path/filepath做你想做的事根本没有包,不支持此操作。

您需要手动使用字符串连接。使用 filepath.Separator ,它会很安全:

x := filepath.Join("home", "my_name", "need_folder") +
string(filepath.Separator) + "."
fmt.Println(x)

输出(在 Go Playground 上尝试):

home/my_name/need_folder/.

关于go - filepath.Join 删除点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51669486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com