我在golang中编写一个命令行实用程序,它以文件作为参数。如何准确地将此参数转换为可用文件?似乎有很多情况需要处理:
Go会提供什么来处理这个问题吗?我应该根据第一个字符是否为“/”进行分支吗?这似乎是一个hacky解决方案,但也许它总是有效,所以应该这样做?
答案 0 :(得分:1)
操作系统为您解释路径。您不需要对路径名执行任何操作。你可以简单地做这样的事情:
os.Open("./path/to/file")
os.Open("another/file")
os.Open("../some_file")
等等
答案 1 :(得分:0)
撇开你不想将.
视为文件,不用担心。
在可信环境*中,用户确实可以指向任何文件,os
包将负责处理。无需filepath.Join
任何事情。
/
开头).
和./
)(*)在不受信任的环境(例如Web服务器)中,您需要验证为授权指定的路径。
答案 2 :(得分:0)
操作系统为您努力工作。但是传递的参数可以对应一个目录。您应该检查os.FileInfo.IsDir
,或者path.filepath.WalkFunc()
执行path.filepath.Walk()
批处理操作。后者是一种非常常见的方法。