我正在尝试使用windows.CreateFile()函数创建文件(有关参考,请参阅https://godoc.org/golang.org/x/sys/windows#CreateFile和https://docs.microsoft.com/en-us/windows/ win32/api/fileapi/nf-fileapi-createfilew ) 在 Golang 1.14 中。除了代码有效之外,我显然file Name为CreateFile().
代码是:
package main
import (
"unsafe"
"golang.org/x/sys/windows"
)
func main() {
var (
nullHandle windows.Handle
filename string = "test_file"
)
strptr := &filename
fileNamePtr := (*uint16)(unsafe.Pointer(strptr))
dwShareMode := uint32(windows.FILE_SHARE_READ | windows.FILE_SHARE_WRITE | windows.FILE_SHARE_DELETE)
dwFlagsAndAttributes := uint32(windows.FILE_FLAG_DELETE_ON_CLOSE)
windows.CreateFile(fileNamePtr, windows.GENERIC_WRITE, dwShareMode, nil, windows.CREATE_NEW, dwFlagsAndAttributes, nullHandle)
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个用非 ascii 字符创建的文件(在这种情况下?R)
Directory of C:\Users\rodrigo\src\delete_on_close
04/30/2020 03:15 PM <DIR> .
04/30/2020 03:15 PM <DIR> ..
04/30/2020 …Run Code Online (Sandbox Code Playgroud)