2010-10-31 3 views
0

Je fais un service Windows en Java, ce service liste les fichiers dans un répertoire et écrit les résultats dans un fichier. Mon problème est que lorsque j'appelle Java.File.isDirectory() lorsque le service est en cours d'exécution, il en résulte toujours faux (il fonctionne bien lorsque je lance le service manuellement comme tout autre programme). De plus, si j'essaie ce qui suit: for (Fichier F: directorio.listFiles()) jette une exception quand je lance le programme en tant que service. Je crois que c'est lié à la permission, parce que quand je change le compte dans lequel le service fonctionne à mes propres identifiants il lister les fichiers correctement. Savez-vous s'il existe une solution de contournement? (Changer une politique de Windows, un autre type de compte spécial, une autre façon de lister les fichiers du répertoire, n'importe quelle autre chose peut-être me manque). Merci d'avance.Le service Java ne peut pas lister les fichiers dans les répertoires

+0

Le répertoire est-il un répertoire local, un répertoire sur un lecteur réseau mappé ou un répertoire sur un partage UNC? – kaliatech

+0

C'est un répertoire local (dans mon répertoire de base) – Rafael

Répondre

0

Merci pour votre aide! J'ai trouvé mon problème, je lisais le chemin à partir d'un fichier de configuration que je supposais être dans la maison de l'utilisateur (ma maison et la maison du système ne sont pas les mêmes ... ma faute). Unfourtenly je ne m'en suis pas rendu compte parce que j'utilisais une classe recyclée (: S). Encore, merci beaucoup.

0

Indiquez à l'utilisateur que le service Java s'exécute sous les informations d'identification requises pour le dossier en question.

Je crois qu'il fonctionne en tant que système.

+0

En fait, c'est curieux, car l'utilisateur du système a des permissions dans tout le système de fichiers (c'est le comportement par défaut des fenêtres). J'ai assigné même les autorisations spéciales et cela n'a pas aidé. – Rafael

Questions connexes