douruobokui58233 2017-06-02 14:13 采纳率: 0%
浏览 50
已采纳

我可以强制filepath.Abs​​给出为其他操作系统设计的路径吗?

I currently am working on Windows. I use the following code to get an absolute path for a relative path.

absolutePath, err := filepath.Abs(relativePath)

The output for this is C:\project\test. Is there any way to "trick" filepath.Abs to have a Linux style absolute path, whether it's /project/test or /d/project/test/? Thanks!

  • 写回答

1条回答 默认 最新

  • duanou9739 2017-06-02 14:50
    关注

    As @JimB noted, converting a relative path to an absolute path is not only OS-specific, it's context-specific: the same relative path on different systems (regardless of OS) can yield different paths; in fact, even on the same system, converting relative to absolute from different working directories can yield different paths. Again as @JimB noted, you can use path.Clean to remove any unnecessary or reduntant relative path components (e.g. turn /dir/../otherDir/./subDir/ into /otherDir/subDir/), but that's the closest you'll get to anything not context-sensitive.

    If you just want to convert the representation, there's filepath.ToSlash which will replace all platform-specific separators with forward slashes. If you're trying to re-use a path across systems, you could run ToSlash on the input, store the "generic" path using forward slashes, then on the target system use filepath.FromSlash to convert it back to the platform-specific path separator.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi