1 回答
TA贡献1793条经验 获得超6个赞
条件编译是正确的方法,但它适用于源文件级别,因此您需要两个单独的文件。
例如:
hidden_notwin.go:
// +build !windows
package main
func IsHiddenFile(filename string) (bool, error) {
return filename[0] == '.', nil
}
hidden_windows.go:
// +build windows
package main
import (
"syscall"
)
func IsHiddenFile(filename string) (bool, error) {
pointer, err := syscall.UTF16PtrFromString(filename)
if err != nil {
return false, err
}
attributes, err := syscall.GetFileAttributes(pointer)
if err != nil {
return false, err
}
return attributes&syscall.FILE_ATTRIBUTE_HIDDEN != 0, nil
}
请注意,// +build windows上面的标签是可选的——_windows源文件后缀已经很神奇了。有关更多详细信息,请参阅如何使用 go build 工具使用条件编译。
- 1 回答
- 0 关注
- 513 浏览
添加回答
举报
