Verificare che il percorso esista con IsDirectory() prima di IsDirectoryWritable(). Se la directory non esiste (con errori di ortografia, ecc.), IsDirectoryWritable segnala false, non un errore. IsDirectory() segnala false per un nome errato. Forse un problema di mappatura dell'unità?
Nei miei test rapidi, sembra che la funzione stia testando le autorizzazioni di Windows, non eseguendo effettivamente un test end-to-end. Per le mie unità Linux collegate a VirtualBox, riporta sempre true (scrivibile) indipendentemente dalle autorizzazioni Linux.
Ecco cosa vedo:
User PermissionsUser PermissionsAutorizzazioni utente
Admin PermissionsAdmin Permissions Autorizzazioni di amministratore
Sono in esecuzione come utente, non come amministratore e le cartelle senza autorizzazione di scrittura hanno isDirectoryWritable==false.
Infine: c'è un'antica opzione che credo non sia coinvolta:
Directories don't really have a read-only attribute.Directories don't really have a read-only attribute.Le directory non hanno realmente un attributo di sola lettura.
Quel quadrato è un terzo stato, né controllato né non controllato.
https://superuser.com/questions/1580751/folders-created-with-read-only-attribute-and-i-cannot-remove