Sha*_*ajK 3 windows smb mount system-calls go
.GetFileAttributes"syscall"
使用下面的方法来获取文件
err := filepath.Walk(prefix, func(docPath string, f os.FileInfo, err error) error {
以下是我尝试检测隐藏文件的方法
import (
"runtime"
"syscall"
)
func IsHiddenFile(filename string) (bool, error) {
if runtime.GOOS == "windows" {
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
} else {
// unix/linux file or directory that starts with . is hidden
if filename[0:1] == "." {
return true, nil
}
}
return false, nil
Run Code Online (Sandbox Code Playgroud)
}
错误 :
.../ undefined: syscall.UTF16PtrFromString
.../ undefined: syscall.GetFileAttributes
.../ undefined: syscall.FILE_ATTRIBUTE_HIDDEN
Run Code Online (Sandbox Code Playgroud)
// +build windows
我需要知道go是否提供了一些通用的方法来检测文件是否隐藏?或者有没有一种方法可以获取某个已安装目录中的所有文件/文件夹,而无需首先接收隐藏文件?
真的很期待在这里收到一些反馈,谢谢。