Originariamente inviato da Mutato
Non e` questo il punto. Immagino che Windows scriva da qualche parte che quel file e` "occupato", se non sono gli attributi allora deve usare un altro meccanismo. E a questo punto la mia domanda e`: quale? e` possibile interagire con esso?
Gli attributi quali "readonly", "nascosto", "di sistema", ecc... sono memorizzati sul file system. Mentre invece un lock su un file è una condizione che nasce dall'uso che ne fanno le applicazioni in un determinato momento. Quindi è una situazione, per così dire, "dinamica".

Ho scritto questo codice che usa funzioni Win32:
codice:
HANDLE hFile;

hFile = CreateFile (szNomeFile, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

if (hFile != INVALID_HANDLE_VALUE)
{
    CloseHandle (hFile);
    printf ("File is not locked\n");
}
else
{
    DWORD dwError = GetLastError ();

    if (dwError == ERROR_SHARING_VIOLATION)
        printf ("File is locked\n");
    else
        printf ("ERROR: %lu\n", dwError);
}
Non ho la pretesa di dire che è perfetto (e non so neanche se è il modo migliore per fare il test sul lock) ma sembra funzionare.