Kernel32 klib = Kernel32.INSTANCE;
int mask = Kernel32.FILE_SHARE_READ
| Kernel32.FILE_SHARE_WRITE | Kernel32.FILE_SHARE_DELETE;
int flags = Kernel32.FILE_FLAG_BACKUP_SEMANTICS
| Kernel32.FILE_FLAG_OVERLAPPED;
HANDLE handle = klib.CreateFile(file.getAbsolutePath(),
Kernel32.FILE_LIST_DIRECTORY,
mask, null, Kernel32.OPEN_EXISTING,
flags, null);
if (Kernel32.INVALID_HANDLE_VALUE.equals(handle)) {
throw new IOException("Unable to open " + file + " ("