nsfwapp/backend/postwork_lock_windows.go
2026-05-02 19:41:29 +02:00

35 lines
637 B
Go

// backend\postwork_lock_windows.go
//go:build windows
package main
import (
"os"
"syscall"
)
const fileShareDelete = 0x00000004
func lockPostWorkFile(path string) (*os.File, error) {
ptr, err := syscall.UTF16PtrFromString(path)
if err != nil {
return nil, err
}
handle, err := syscall.CreateFile(
ptr,
0, // desired access: nur Handle halten, kein Lesen/Schreiben nötig
syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE, // bewusst OHNE FILE_SHARE_DELETE
nil,
syscall.OPEN_EXISTING,
syscall.FILE_ATTRIBUTE_NORMAL,
0,
)
if err != nil {
return nil, err
}
return os.NewFile(uintptr(handle), path), nil
}