IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Récupérer un fichier sur un ordinateur local protégé par mot de passe


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 27
    Par défaut Récupérer un fichier sur un ordinateur local protégé par mot de passe
    Bonjour à tous,

    J'ai pas mal parcourut les forums mais je n'ai pas trouvé de réponse a ma question :

    Je crée un logiciel qui doit récupérer un fichier sur un autre ordinateur en réseau local. Cet autre ordinateur demande un nom d'utilisateur et un mot de passe pour pouvoir y accéder.

    Voici le code que j'ai fait :

    String chemin1 ="\\\\192.168.10.2\\Data";
    Path chemin = Paths.get(chemin1);

    try(DirectoryStream<Path> liste = Files.newDirectoryStream(chemin)){

    //... toute une série d'opérations sur les fichiers
    Si j'exécute mon programme j'obtiens l'erreur suivante :

    java.nio.file.FileSystemException: \\192.168.10.2\Data\: Échec d’ouverture de session*: nom d’utilisateur inconnu ou mot de passe incorrect.

    Logique puisque je ne rentre le mot de passe et le nom d'utilisateur nul part.

    Par contre, si j'accède a la main au dossier "data" avant de lancer le programme, Windows me demande un nom de session et un mot de passe. Je le rempli tous les champs j'accède a mon dossier "data". Ensuite je relance mon programme et tout ce passe correctement. Mais ce n'est pas vraiment une solution acceptable....

    Quelqu'un saurait il comment résoudre ce problème ?

    Merci d'avance.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Malheureusement les classes File et Path ne sont pas du tout prévues pour des systèmes de fichiers qui nécessitent un mot de passe avant de pouvoir y accéder.
    Ce genre de choses sont plus proches de trucs comme HTTP ou FTP, ce sont des protocoles à part dont il faut une implémentation. Et comme c'est un concept purement Windows, il n'y a pas d'implémentation fournie avec Java.

    Tu peux en trouver une du côté de JCIFS. Il y a des exemple d'utilisation de la classe SmbFile.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 27
    Par défaut
    Rebonjour,

    Merci pour la réponse, j'ai réussi à faire ce que je voulais en passant par JCIFS.

    Pour ceux qui auraient le même problème que moi :

    Il faut télécharger la librairie JCIFS et l'intégrer dans votre projet.(http://jcifs.samba.org/src/ ).

    Voici un exemple de code l'utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    try {
    			NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("192.168.10.2", "Login", "motDePasse");
    			SmbFile repertoire = new SmbFile("smb://192.168.10.2/data/",auth);
    			String [] listeFichier = repertoire.list();
    			for (int i = 0 ; i <listeFichier.length;i++){
    				System.out.println(listeFichier[i]);
     
    			}
    		} catch (SmbException e) {
    			e.printStackTrace();
    		}
    		catch (MalformedURLException e){
    			e.printStackTrace();
    		}
    Ce code écrit dans la console le nom de tous les fichiers se trouvant dans le dossier data. Il est aussi possible de créer/lire/copier des fichiers avec l'objet SmbFile. (Se référer à l'api fourni avec la librairie ).

    En tout cas merci à toi thelvin, ca faisait un moment que je cherchais!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Décompresser un fichier protégé par mot de passe
    Par Dark Cid dans le forum Langage
    Réponses: 2
    Dernier message: 29/06/2011, 23h05
  2. [XL-2003] Lister les fichiers protégés par mot de passe
    Par macat dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/10/2010, 11h04
  3. créer un fichier PDF protégé par mot de passe en VBA
    Par programmer_c'est_dur dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/05/2009, 22h09
  4. Créer un fichier protégé par mot de passe
    Par Damiendupont dans le forum Général Python
    Réponses: 2
    Dernier message: 29/03/2008, 19h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo