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 :

[JCIFS] Copier des données via SMB


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 34
    Points
    34
    Par défaut [JCIFS] Copier des données via SMB
    Bonjour,

    Je voudrais copier un fichier via SMB, mais j'ai un problème "Acces denied"

    Un cou de pousse SVP, merci d'avance.

    mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	try {
    			NtlmPasswordAuthentication npa = new NtlmPasswordAuthentication(
    					"192.168.1.2", "user", "123456");
    			SmbFile filesmb = new SmbFile("smb://192.168.1.2/c$/dir/", npa);
    			OutputStream destination = filesmb.getOutputStream();
    			InputStream originalfile = new FileInputStream("d://CV");
    			IOUtils.copy(originalfile, destination);
     
    		} catch (SmbException e) {
    			e.printStackTrace();
    		}
    Message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    jcifs.smb.SmbException: Access is denied.
    	at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    	at jcifs.smb.SmbTransport.send(SmbTransport.java:663)
    	at jcifs.smb.SmbSession.send(SmbSession.java:238)
    	at jcifs.smb.SmbTree.send(SmbTree.java:119)
    	at jcifs.smb.SmbFile.send(SmbFile.java:775)
    	at jcifs.smb.SmbFile.open0(SmbFile.java:989)
    	at jcifs.smb.SmbFile.open(SmbFile.java:1006)
    	at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
    	at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:97)
    	at jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:67)
    	at jcifs.smb.SmbFile.getOutputStream(SmbFile.java:2853)
    	at SMPcopie.main(SMPcopie.java:50)

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    le compte que tu utilises pour l'authentification a-t-il bien les droits nécessaires pour se connecter à cette url cifs et créer un fichier ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 34
    Points
    34
    Par défaut
    Salut joel.drigo,
    Merci pour ces précieuses infos.
    Effectivement j'ai un problème des droits de connexion.
    Je déclare mon soucis comme résolus pour cette partie.
    Une autre question SVP, comment je peux afficher les fichiers d'une répertoire partagée commençant par la lettre A.
    Un grand Merci et bonne soirée.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par essadiki_ista Voir le message
    Salut joel.drigo,
    Merci pour ces précieuses infos.
    Effectivement j'ai un problème des droits de connexion.
    Je déclare mon soucis comme résolus pour cette partie.
    Une autre question SVP, comment je peux afficher les fichiers d'une répertoire partagée commençant par la lettre A.
    Un grand Merci et bonne soirée.
    La classe SmbFile de JCIFS a des méthodes équivalentes aux méthodes de File, pour récupérer le contenu, dont celles avec filtres :

    listFiles(jcifs.smb.SmbFilenameFilter)

    listFiles(jcifs.smb.SmbFileFilter)

    Tu as les versions de type list(filter) également qui retournent des String

    Et en bonus, tu as listFiles(java.lang.String) ou le paramètre est un wildcard DOS.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 34
    Points
    34
    Par défaut
    Ok merci bcp, je regarderai et je te tiens au courant .

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 34
    Points
    34
    Par défaut
    Bonsoir,
    Mon fichier ne se copie pas !!!! Et je n'ai aucune erreur !!
    J'ai besoin d'un coup de main SVP.

    mon code:
    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
     NtlmPasswordAuthentication auth = new
    		 NtlmPasswordAuthentication("192.168.1.2", "user", "123456");
    		 SmbFile originalfile = new SmbFile("smb://192.168.1.2/c$/CV/",auth);
     
    		 NtlmPasswordAuthentication auth1 = new
    		 NtlmPasswordAuthentication("192.168.1.3", "user", "azerty");
    		 SmbFile destinationfile = new SmbFile("smb://192.168.1.3/c$/dir/",auth1);
     
     
    		 SmbFile[] files= null ;
    		 files = originalfile.listFiles();
    		 try{
    			 for(int i=0;i<files.length;i++){
    				 if(files[i].toString().contains("test")){
    					originalfile.listFiles()[i].copyTo(destinationfile) ;
    				 }
    			 }
    		 }
     
    		 catch (Exception e) {
    			e.printStackTrace();
    		}
     
    		 System.out.println("Ok");
    Merci infiniment

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Et si tu ajoutes des traces comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		 SmbFile[] files = originalfile.listFiles();
    		 try{
                           System.out.println(Arrays.toString(files));
    			 for(int i=0;i<files.length;i++){
    				 if(files[i].toString().contains("test")){
    				System.out.println(files[i]);
    /*originalfile.listFiles()*/files[i].copyTo(destinationfile) ;
    				 }
    			 }
    		 }
    ça affiche quelque chose ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 34
    Points
    34
    Par défaut
    Résultat du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [smb://192.168.1.2/c$/CV/CV_Azzedine ESSADIKI.pdf, smb://192.168.1.2/c$/CV/CV_Azzedine.pdf, smb://192.168.1.2/c$/CV/test.txt]
    smb://192.168.1.2/c$/CV/test.txt
    Ok

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ajoutes avant ta boucle de copie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jcifs.util.LogStream.setLevel(3);
    pour voir le détail de la copie.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 34
    Points
    34
    Par défaut
    Bonjour joel.drigo,

    Ci-après la trace de la copie, je sais pas pourquoi la copie ne se passe pas quand je fais un filtre sur les fichiers à copier, par contre quand je copie le répertoire en entier la copie ça se passe bien.
    Merci de votre aide.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    [smb://192.168.1.2/c$/CV/CV_Azzedine ESSADIKI.pdf, smb://192.168.1.2/c$/CV/CV_Azzedine.pdf, smb://192.168.1.2/c$/CV/test.txt]
    smb://192.168.1.2/c$/CV/test.txt
    jcifs.smb.SmbException: 0xC000019C
    	at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    	at jcifs.smb.SmbTransport.send(SmbTransport.java:640)
    	at jcifs.smb.SmbSession.send(SmbSession.java:238)
    	at jcifs.smb.SmbTree.send(SmbTree.java:119)
    	at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:703)
    	at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:66)
    	at jcifs.smb.Dfs.resolve(Dfs.java:167)
    	at jcifs.smb.SmbFile.doConnect(SmbFile.java:902)
    	at jcifs.smb.SmbFile.connect(SmbFile.java:954)
    	at jcifs.smb.SmbFile.connect0(SmbFile.java:880)
    	at jcifs.smb.SmbFile.copyTo(SmbFile.java:2300)
    	at SMPcopie.main(SMPcopie.java:56)
    doConnect: 0.0.0.0<00>/192.168.1.2
    jcifs.smb.SmbException: 0xC000019C
    	at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    	at jcifs.smb.SmbTransport.send(SmbTransport.java:640)
    	at jcifs.smb.SmbSession.send(SmbSession.java:238)
    	at jcifs.smb.SmbTree.send(SmbTree.java:119)
    	at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:703)
    	at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:66)
    	at jcifs.smb.Dfs.resolve(Dfs.java:167)
    	at jcifs.smb.SmbFile.doConnect(SmbFile.java:902)
    	at jcifs.smb.SmbFile.connect(SmbFile.java:954)
    	at jcifs.smb.SmbFile.connect0(SmbFile.java:880)
    	at jcifs.smb.SmbFile.copyTo(SmbFile.java:2301)
    	at SMPcopie.main(SMPcopie.java:56)
    doConnect: 0.0.0.0<00>/192.168.1.3
    jcifs.smb.SmbException: 0xC000019C
    	at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    	at jcifs.smb.SmbTransport.send(SmbTransport.java:640)
    	at jcifs.smb.SmbSession.send(SmbSession.java:238)
    	at jcifs.smb.SmbTree.send(SmbTree.java:119)
    	at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:703)
    	at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:66)
    	at jcifs.smb.Dfs.resolve(Dfs.java:167)
    	at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:671)
    	at jcifs.smb.SmbFile.copyTo(SmbFile.java:2312)
    	at SMPcopie.main(SMPcopie.java:56)
    queryPath: \CV\test.txt
    jcifs.smb.SmbException: 0xC000019C
    	at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    	at jcifs.smb.SmbTransport.send(SmbTransport.java:640)
    	at jcifs.smb.SmbSession.send(SmbSession.java:238)
    	at jcifs.smb.SmbTree.send(SmbTree.java:119)
    	at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:703)
    	at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:66)
    	at jcifs.smb.Dfs.resolve(Dfs.java:167)
    	at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:671)
    	at jcifs.smb.SmbFile.send(SmbFile.java:773)
    	at jcifs.smb.SmbFile.queryPath(SmbFile.java:1363)
    	at jcifs.smb.SmbFile.copyTo0(SmbFile.java:2152)
    	at jcifs.smb.SmbFile.copyTo(SmbFile.java:2347)
    	at SMPcopie.main(SMPcopie.java:56)
    open0: \CV\test.txt
    jcifs.smb.SmbException: 0xC000019C
    	at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    	at jcifs.smb.SmbTransport.send(SmbTransport.java:640)
    	at jcifs.smb.SmbSession.send(SmbSession.java:238)
    	at jcifs.smb.SmbTree.send(SmbTree.java:119)
    	at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:703)
    	at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:66)
    	at jcifs.smb.Dfs.resolve(Dfs.java:167)
    	at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:671)
    	at jcifs.smb.SmbFile.send(SmbFile.java:773)
    	at jcifs.smb.SmbFile.open0(SmbFile.java:989)
    	at jcifs.smb.SmbFile.open(SmbFile.java:1006)
    	at jcifs.smb.SmbFile.copyTo0(SmbFile.java:2203)
    	at jcifs.smb.SmbFile.copyTo(SmbFile.java:2347)
    	at SMPcopie.main(SMPcopie.java:56)
    open0: \dir
    jcifs.smb.SmbException: 0xC000019C
    	at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    	at jcifs.smb.SmbTransport.send(SmbTransport.java:640)
    	at jcifs.smb.SmbSession.send(SmbSession.java:238)
    	at jcifs.smb.SmbTree.send(SmbTree.java:119)
    	at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:703)
    	at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:66)
    	at jcifs.smb.Dfs.resolve(Dfs.java:167)
    	at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:671)
    	at jcifs.smb.SmbFile.send(SmbFile.java:773)
    	at jcifs.smb.SmbFile.open0(SmbFile.java:989)
    	at jcifs.smb.SmbFile.open(SmbFile.java:1006)
    	at jcifs.smb.SmbFile.copyTo0(SmbFile.java:2205)
    	at jcifs.smb.SmbFile.copyTo(SmbFile.java:2347)
    	at SMPcopie.main(SMPcopie.java:56)
    jcifs.smb.SmbException: Access is denied.
    	at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
    	at jcifs.smb.SmbTransport.send(SmbTransport.java:663)
    	at jcifs.smb.SmbSession.send(SmbSession.java:238)
    	at jcifs.smb.SmbTree.send(SmbTree.java:119)
    	at jcifs.smb.SmbFile.send(SmbFile.java:775)
    	at jcifs.smb.SmbFile.open0(SmbFile.java:989)
    	at jcifs.smb.SmbFile.open(SmbFile.java:1006)
    	at jcifs.smb.SmbFile.copyTo0(SmbFile.java:2205)
    	at jcifs.smb.SmbFile.copyTo(SmbFile.java:2347)
    	at SMPcopie.main(SMPcopie.java:56)
    close: 16384

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bah, il y a jcifs.smb.SmbException: Access is denied. dans la trace, sur open dir.

    Une bonne piste...

    D'après les docs jcifs, la fonction copyTo aurait été créée pour gérer des copies de répertoires, et ils conseillent d'utiliser des SMBFileInputStream et SMBFileOutputStream pour faire de la copie fichier à fichier : essayes de ce coté. Je n'ai jamais utiliser en ce me qui concerne cette fonction copyTo...je ne peux pas t'aider plus...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 34
    Points
    34
    Par défaut
    Merci bcp pour ces précieuses infos.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 34
    Points
    34
    Par défaut
    Salut joel.drigo,
    je n'arrive plus à trouver une solution à mon problème.
    au fait même j'utilise les objets SMBFileInputStream et SMBFileOutputStream, j'ai toujours le problème de jcifs.smb.SmbException: Access is denied. dans la trace, sur open dir.
    Un grand merci pour toute aide.
    Code :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    NtlmPasswordAuthentication auth = new
    		 NtlmPasswordAuthentication("192.168.1.2", "user", "123456");
    		 SmbFile originalfile = new SmbFile("smb://192.168.1.2/c$/CV/testing.txt/",auth);
     
    		 NtlmPasswordAuthentication auth1 = new
    		 NtlmPasswordAuthentication("192.168.1.3", "user", "essadiki_ista");
    		 SmbFile destinationfile = new SmbFile("smb://192.168.1.3/c$/dir/",auth1);
     
    		 SmbFileInputStream in = null; // canal d'entrée
    		SmbFileOutputStream out = null; // canal de sortie
     
     
    		try {
    		    // Init
    		    in = new SmbFileInputStream(originalfile);
    		    out = new SmbFileOutputStream(destinationfile);
     
    		    // Lecture par segment de 0.5Mo
    		    byte buffer[]= new byte[512*1024];
    		    int nbLecture;
    		    while( (nbLecture = in.read(buffer)) != -1 ) {
    		         out.write(buffer, 0, nbLecture);
    		    }
     
    		    System.out.println("File " + originalfile.getName() + " copied to : " + destinationfile);
     
    		} catch (IOException e) {
    		    e.printStackTrace(); // n'importe quelle exception
    		} finally { // finalement on ferme
    		    if(in != null) {
    		        try {
    		           in.close();
    		        } catch (IOException e) {}
    		    }
    		    if(out != null) {
    		        try {
    		           out.close();
    		        } catch (IOException e) {}
    		    } 
    		}

  14. #14
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Access denied veut encore et toujours dire que tu n'a pas le droit d'accès.

    Lorsque tu fais ton partage, tu donnes des droits à des groupes ou des utilisateurs : des droits de consulter le contenu du dossier, le droit de lire un fichier, le droit d'écrire un fichier, de créer, de supprimer, etc...

    Toute action pour laquelle tu n'auras pas donné le droit correspondant pour l'utilisateur que tu utilises dans ta manip se verra refusée avec cette exception.

    Par contre, il me semble que JCIFS ne supporte que smb1, pas smb2 ni smb3... à vérifier... Si tous tes droits sont ok, peut être que le problème est de ce coté
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 34
    Points
    34
    Par défaut
    Lorsque tu fais ton partage, tu donnes des droits à des groupes ou des utilisateurs : des droits de consulter le contenu du dossier, le droit de lire un fichier, le droit d'écrire un fichier, de créer, de supprimer, etc...
    J'ai donne les droits de contrôle total.

    Par contre, il me semble que JCIFS ne supporte que smb1, pas smb2 ni smb3... à vérifier... Si tous tes droits sont ok, peut être que le problème est de ce coté
    J'ai réfléchi dans ce côté, mais ce qui m'inquiétude pourquoi la copie ça se passe bien quand je copie le répertoire en entier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try {
    			NtlmPasswordAuthentication npa = new NtlmPasswordAuthentication(
    					"192.168.1.2", "user", "123456");
    			SmbFile filesmb = new SmbFile("smb://192.168.1.2/c$/dir/", npa);
    			OutputStream destination = filesmb.getOutputStream();
    			InputStream originalfile = new FileInputStream("d://CV");
    			IOUtils.copy(originalfile, destination);
     
    		} catch (SmbException e) {
    			e.printStackTrace();

  16. #16
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par essadiki_ista Voir le message
    J'ai donne les droits de contrôle total.



    J'ai réfléchi dans ce côté, mais ce qui m'inquiétude pourquoi la copie ça se passe bien quand je copie le répertoire en entier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try {
    			NtlmPasswordAuthentication npa = new NtlmPasswordAuthentication(
    					"192.168.1.2", "user", "123456");
    			SmbFile filesmb = new SmbFile("smb://192.168.1.2/c$/dir/", npa);
    			OutputStream destination = filesmb.getOutputStream();
    			InputStream originalfile = new FileInputStream("d://CV");
    			IOUtils.copy(originalfile, destination);
     
    		} catch (SmbException e) {
    			e.printStackTrace();
    Euh, mais, d://CV c'est quoi (1 slash est suffisant en plus) ? Un dossier ? On ne peut pas accèder à un dossier sous forme de inputstream comment ça pourrait fonctionner ?

    D'ailleurs on obtient une java.io.FileNotFoundException: <path du dossier> (Accès refusé) si on essaye de faire ça, normalement... ce serait pas ça ton erreur acces denied ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/01/2010, 18h09
  2. récupération des données via une liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 12h27
  3. [ADO.Net][VB.NET] Comment copier des données entre deux BDD différentes ?
    Par maddog2032 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 06/06/2005, 11h01
  4. Récupérer des données via le port usb
    Par matmuth dans le forum C++Builder
    Réponses: 12
    Dernier message: 11/05/2005, 16h34
  5. Réponses: 7
    Dernier message: 20/03/2005, 14h53

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