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 關注
- 435 瀏覽
添加回答
舉報