Comment vérifier si un fichier est lisible?

Je suis en train d'écrire la version 6 de Java application et je dois vérifier si un fichier est lisible. Toutefois, sur Windows canRead() retourne toujours true. Donc, je vois que probablement, la seule solution pourrait être une solution native basée sur WINAPI et à l'écrit dans JNA/JNI.

Mais, il y a un autre problème, car il est difficile de trouver une fonction simple en WINAPI qui permettrait le retour d'informations sur l'accès à un fichier. J'ai trouvé GetNamedSecurityInfo ou GetSecurityInfo mais je ne suis pas une avancée WINAPI programmeur et ils sont trop compliqués pour moi dans le cadre de JNA/JNI. Toutes les idées sur la façon de traiter ce problème?

Vous pouvez essayer de lire le fichier et voir si vous obtenez un message d'erreur.
Connexes: bugs.sun.com/bugdatabase/view_bug.do?bug_id=6203387
L'exactitude est plus importante que la vitesse. 😉 Vous n'avez pas besoin de lire le fichier en entier, il suffit de l'ouvrir et de le fermer.
En termes d'opérations sur le disque dur, le travail nécessaire pour ouvrir et fermer un fichier qui est un peu la même chose que le travail requis pour lire le descripteur de sécurité associées au fichier. Je serais surpris si la performance n'était pas similaire.
Au contraire. Il est d'essayer de prédire l'avenir, comme ce qui n'est pas la "meilleure pratique".

OriginalL'auteur peter | 2012-08-10