// backend\sharedelete_windows.go //go:build windows package main import ( "os" "syscall" ) func openForReadShareDelete(path string) (*os.File, error) { p, err := syscall.UTF16PtrFromString(path) if err != nil { return nil, err } // Wichtig: FILE_SHARE_DELETE erlaubt Rename/Move/Delete während Lesen/Streaming h, err := syscall.CreateFile( p, syscall.GENERIC_READ, syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE, nil, syscall.OPEN_EXISTING, syscall.FILE_ATTRIBUTE_NORMAL, 0, ) if err != nil { return nil, err } return os.NewFile(uintptr(h), path), nil }