Précédent   Forum des professionnels en informatique > Java > Général Java > APIs > IO
IO Vos questions sur les flux d'entrées/sorties, fichiers, traitements de données, protocoles réseau, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/01/2007, 16h10   #1
Futur Membre du Club
 
Étudiant
Inscription : décembre 2006
Messages : 59
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 59
Points : 16
Points : 16
Par défaut Envoyer un fichier vers un dossier partagé Windows

Bonjour, tout est dans le titre.
Mon application genere un fichier XML qu'il faudrait envoyer ensuite vers un dossier partagé windows sur un serveur distant.
Le probleme etant que je ne peux rien installé sur le serveur distant (merci Cisco...) ainsi, je suis obligé de passer par les partages windows pour transferer le fichier.
Est il possible de realiser cela en java?
Si oui, où trouver un tutorial?

D'avance je vous remercie
elfiestador est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 16h17   #2
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 210
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 210
Points : 13 686
Points : 13 686
Si ton programme tourne sur une plateforme windows, tu peux directement utiliser les chemins UNC avec File.

Code :
1
2
 
File f = new File("\\\\SERVEUR\\Partage\\rep1\\rep2\\fichier.ext");
Si ton programme tourne sur une autre plateforme, tu peux utiliser la libraire jcifs.

Code :
1
2
 
SmbFile file = new SmbFile("smb://SERVEUR/partage/rep1/rep2/fichier.ext");
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 16h18   #3
Futur Membre du Club
 
Étudiant
Inscription : décembre 2006
Messages : 59
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 59
Points : 16
Points : 16
Merci, je vais tester cela
elfiestador est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 16h19   #4
Modérateur
 
Avatar de sinok
 
Inscription : août 2004
Messages : 8 071
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2004
Messages : 8 071
Points : 10 676
Points : 10 676
D'ailleurs même pour windows il serait plus propre de passer par jcifs
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
sinok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 16h43   #5
Futur Membre du Club
 
Étudiant
Inscription : décembre 2006
Messages : 59
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 59
Points : 16
Points : 16
merci pour vos reponse, cependant, je suis un peu juste en java sur l'interaction avec le reseau et je ne vois pas comment mettre en place une classe pour permettre l'envoi de ce fichier.
Si vous avez dans vos bookmarks un petit tuto, je suis preneur
elfiestador est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 16h46   #6
Futur Membre du Club
 
Étudiant
Inscription : décembre 2006
Messages : 59
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 59
Points : 16
Points : 16
il faut utiliser les sockets ???
elfiestador est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 17h02   #7
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 210
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 210
Points : 13 686
Points : 13 686
Citation:
Envoyé par elfiestador
il faut utiliser les sockets ???
Arg. non! Tout la plomberie "réseau" est gérée par SmbFile.
Tu peux meme faire de la copie entre partages

Code :
1
2
3
4
5
6
7
8
9
10
11
 
public static void main(String[] args) {
	try {
		SmbFile originalfile = new SmbFile("smb://SERVEUR1/partage1/rep1/f1.ext");
		SmbFile destinationfile = new SmbFile("smb://SERVEUR2/partage2/rep2/f2.ext");
 
		originalfile.copyTo(destinationfile);
	} catch (SmbException e) {
		e.printStackTrace();
	}
}
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 17h03   #8
Modérateur
 
Avatar de sinok
 
Inscription : août 2004
Messages : 8 071
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2004
Messages : 8 071
Points : 10 676
Points : 10 676
Non, juste un FileInputStream pour récupérer les données de ton fichier local et un SmbOutputStream pour écrire les données sur ton fichier distant
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
sinok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 17h36   #9
Futur Membre du Club
 
Étudiant
Inscription : décembre 2006
Messages : 59
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 59
Points : 16
Points : 16
Dernier rempart à la construction de mon chateau !

j'obtiens une erreur d'authentification...
Est il possible de s'authentifier avec son compte windows ???
Si oui, par quelle methode? j'ai jeté un coup d'oeil aux API mais je ne vois pas trop comment faire.

Merci pour votre aide
elfiestador est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 17h49   #10
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 210
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 210
Points : 13 686
Points : 13 686
Code :
1
2
3
 
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("mydomain", "user", "pwd");
SmbFile f = new SmbFile("smb://SERVEUR/Partage/rep1/fichier1.ext", auth);
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 17h58   #11
Modérateur
 
Avatar de sinok
 
Inscription : août 2004
Messages : 8 071
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2004
Messages : 8 071
Points : 10 676
Points : 10 676
Plus ou moins, il faut s'authentifier avec un compte permettant de le faire sur la machine distante, donc si ton compte le permet, oui.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
import jcifs.smb.*;
 
jcifs.Config.setProperty( "jcifs.netbios.wins", "192.168.1.220" );
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("domain", "username", "password");
SmbFileInputStream in = new SmbFileInputStream("smb://host/c/My Documents/somefile.txt", auth);
byte[] b = new byte[8192];
int n;
while(( n = in.read( b )) > 0 ) {
    System.out.write( b, 0, n );
}
Double grillé, je suis fort aujourd'hui
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
sinok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 18h08   #12
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 210
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 39
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 210
Points : 13 686
Points : 13 686
@sinok:

@elfiestador: n'hesite pas lire la javadoc de jcifs
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 18h08   #13
Futur Membre du Club
 
Étudiant
Inscription : décembre 2006
Messages : 59
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 59
Points : 16
Points : 16
Merci beaucoup pour votre aide, ca fonctionne !!!
elfiestador est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 08h43.


 
 
 
 
Partenaires

Hébergement Web