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

Android Discussion :

Copier fichier de Android vers dossier partagé (réseau)


Sujet :

Android

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Copier fichier de Android vers dossier partagé (réseau)
    Bonjour,

    Je vous expose mon problème :

    J'ai une tablette Iconia A500 d'Acer et un disque monté (sur machine windows ou linux) sur le réseau à l'emplacement suivant : 192.168.10.X/test/.

    Je n'arrive pas à copier un fichier généré à partir de la tablette sur l'emplacement réseau à partir de mon application.

    Avec ES File Explorer, je vois bien le dossier partagé 192.168.10.X/test/. Et quand je copie un fichier de la tablette vers l'emplacement réseau : cela fonctionne ! Je ne sais pas du tout comment cette application procède, j'ai essayé beaucoup de solutions.

    Voici ma méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    public static boolean copyFile(File source, File dest) {
        if(dest == null)
        return false;
     
        Log.d("########## DESTINATION ###########", dest.getPath());
     
        try {
            // Declaration et ouverture des flux
            java.io.FileInputStream sourceFile = new java.io.FileInputStream(source);
     
            java.io.FileOutputStream destinationFile = null;
     
            destinationFile = new FileOutputStream(dest);
     
            // Lecture par segment de 0.5Mo 
            byte buffer[] = new byte[512 * 1024];
            int nbLecture;
     
            while ((nbLecture = sourceFile.read(buffer)) != -1) {
                destinationFile.write(buffer, 0, nbLecture);
            }
     
            sourceFile.close();
     
        } catch (IOException e) {
            e.printStackTrace();
            return false; // Erreur
        }
     
        return true; // Résultat OK  
    }
    J'ai essayé en dur plusieurs possibilité pour "dest" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    smb:\\192.168.10.X\test
    192.168.10.X/test
    /192.168.10.X/test/
    ...
    ...

    Manque t-il quelque chose dans mon application ?

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Pour communiquer avec des dossiers partagés, il faut utiliser une librairie spécifique pour le protocole SMB.

    Ce ne sont pas de simples fichiers tout comme pour NFS.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup du tuyau Nemek j'ai trouvé la solution.

    Il faut inclure la librairie jcifs-1.3.16 dans votre projet.

    Puis voici le code permettant de copier un fichier local dans un dossier partagé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    public static boolean copyFilePartage(File source, File dest){
    	if(dest == null)
    		return false;
     
    	try{
    		// Declaration et ouverture des flux	
    		java.io.FileInputStream sourceFile = new java.io.FileInputStream(source);
    		SmbFileOutputStream destinationFile = new SmbFileOutputStream("smb://"+dest.getPath()+"/"+source.getName());
     
    		// Lecture par segment de 0.5Mo 
    		byte buffer[] = new byte[512 * 1024];
    		int nbLecture;
     
    		while ((nbLecture = sourceFile.read(buffer)) != -1){
    			destinationFile.write(buffer, 0, nbLecture);
    		}
     
    		sourceFile.close();
     
    	} catch (Exception e){
    		e.printStackTrace();
    		return false; // Erreur
    	}
     
    	return true; // Résultat OK  
    }

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

Discussions similaires

  1. Lien symbolique dans dossier partagé réseau
    Par fafa63 dans le forum Linux
    Réponses: 6
    Dernier message: 23/10/2014, 15h13
  2. Copie d'un fichier local vers un partage Réseau
    Par snay13 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 06/09/2010, 05h57
  3. Mot de passe sur dossier partagé réseau
    Par Minos2 dans le forum Sécurité
    Réponses: 2
    Dernier message: 22/12/2009, 13h40
  4. [XHTML 1.0] Lien vers dossier partagé sur le reseau
    Par aiphes dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/11/2009, 16h25
  5. copier fichier du serveur vers le client fso
    Par nigiri dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/02/2006, 13h26

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