Verifique que la ruta exista con IsDirectory() antes de IsDirectoryWritable(). Si el directorio no existe (mal escrito, etc.), IsDirectoryWritable informa falso, no un error. IsDirectory() informa falso por un mal nombre. ¿Posiblemente un problema de mapeo de unidades?
En mis pruebas rápidas, la función parece estar probando los permisos de Windows, en lugar de realizar una prueba de un extremo a otro. Para mis unidades de Linux conectadas a VirtualBox, siempre informa verdadero (escribible) independientemente de los permisos de Linux.
Esto es lo que veo:
User PermissionsUser PermissionsPermisos de usuario
Admin PermissionsAdmin Permissions Permisos de administrador
Lo estoy ejecutando como usuario, no como administrador, y las carpetas sin permiso de escritura tienen isDirectoryWritable==false.
Finalmente: hay una opción antigua que creo que no interviene:
Directories don't really have a read-only attribute.Directories don't really have a read-only attribute.Los directorios realmente no tienen un atributo de solo lectura.
Esa casilla es un tercer estado, ni marcado ni no marcado.
https://superuser.com/questions/1580751/carpetas-creadas-con-atributo-de-solo-lectura-y-no-puedo-eliminar