12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- //go:build windows
- package yu_file
- import yu_sys "gogs.qqck.cn/s/tools/sys"
- const (
- error_FILE_NOT_FOUND = 0x2 // 系统找不到指定的文件
- error_SHARING_VIOLATION = 0x20 // 进程无法访问文件,因为另一个程序正在使用此文件
- )
- func getFileSizeEx(fd uintptr) (size int64, success bool) {
- success = yu_sys.GetFileSizeEx.CallBool(fd, &size)
- return
- }
- func readFileBuf(fd uintptr, buf []byte) (result int64) {
- j_len := len(buf)
- if j_len < 1 {
- return
- }
- yu_sys.ReadFile.Call(fd, buf, j_len, &result, 0)
- return
- }
- func readFileSize(fd uintptr, size int) []byte {
- if size < 1 {
- return nil
- }
- j_buf := make([]byte, size)
- if !yu_sys.ReadFile.CallBool(fd, j_buf, size, &size, 0) {
- return nil
- }
- return j_buf[:size]
- }
- func writeFile(fd uintptr, buf []byte) bool {
- if len(buf) < 1 {
- return true
- }
- j_len := 0
- return yu_sys.WriteFile.CallBool(fd, buf, len(buf), &j_len, 0)
- }
|