final File parentDir = new File("S:\\PDSPopulatingProgram");
parentDir.mkdir();
final String hash = "popupateData";
final String fileName = hash + ".txt";
final File file = new File(parentDir, fileName);
file.createNewFile(); // Creates file PDSPopulatingProgram/popupateData.txt
J'essaie de créer un fichier dans un dossier mais je reçois une exception car
Java.security.AccessControlException: Access denied
Je travaille dans un environnement Windows. Je peux créer un dossier à partir de l'Explorateur Windows, mais pas à partir du code Java.
Comment puis-je résoudre ce problème?
Dans votre <jre location>\lib\security\Java.policy
essayez d'ajouter:
grant { permission Java.security.AllPermission; };
Et voyez si cela vous permet. Si c'est le cas, vous devrez ajouter des autorisations plus granulaires.
Voir:
Documentation Java 8 pour les fichiers Java.policy
et
http://Java.Sun.com/developer/onlineTraining/Programming/JDCBook/appA.html
Bien que ce ne soit pas recommandé, mais si vous voulez vraiment laisser votre application Web accéder à un dossier en dehors de son répertoire de déploiement. Vous devez ajouter l'autorisation suivante dans Java.policy
fichier (le chemin est comme dans la réponse de Petey B)
permission Java.io.FilePermission "your folder path", "write"
Dans votre cas, ce serait
permission Java.io.FilePermission "S:/PDSPopulatingProgram/-", "write"
Ici /-
signifie tous les fichiers ou sous-dossiers de ce dossier.
Attention: Mais en faisant cela, vous invitez un certain risque de sécurité.