Boris94240
-
23 mars 2009 à 15:56
magicien10024
Messages postés3177Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention28 octobre 2018
-
23 mars 2009 à 18:52
Bonjour,
je cherche a faire un serveur de sauvegarde de fichiers avec le client qui va bien...
jusque la j'arrive bien a faire communiquer le serveur avec le client, j'arrive a envoyer un fichier unique mais lorsque j'essai d'envoyer tout une liste de fichier ma fonction de recuperation de fichier s'arrete de fonctionner mais je ne sais pas pourquoi ....
Merci d'avance pour votre aide!!
La ligne ou s'arrete de fonctionner le serveur est la suivante
BufferedReader reception = new BufferedReader(new InputStreamReader(sock.getInputStream()));
PrintWriter envoi = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())),true);
File RepertoireDuClient = new File("C:/Documents and Settings/HP_Administrateur/Mes documents/NetBeansProjects/DesktopApplication1/"+sock.getInetAddress().toString());
File DataDuClient = new File("C:/Documents and Settings/HP_Administrateur/Mes documents/NetBeansProjects/DesktopApplication1/"+sock.getInetAddress().toString()+"/"+sock.getInetAddress().toString()+".bin");
if (!RepertoireDuClient.exists())
{
RepertoireDuClient.mkdir();
DataDuClient.createNewFile();
System.out.println("creation du dossier client");
envoi.println("full");
message = reception.readLine();
System.out.println("Message du client : " +message);
if(message.equalsIgnoreCase("ok")){
String nbfichiers = reception.readLine();
int nbfic = Integer.parseInt(nbfichiers);
System.out.println("nombere de fichiers :" +nbfic);
for(int i=0;i<nbfic;i++){
System.out.println("Waiting... fichier :" +i);
envoi.println("ok");
int filesize=6022386; // filesize temporary hardcoded
long start = System.currentTimeMillis();
int bytesRead;
int current = 0;
// receive file
byte [] mybytearray = new byte [filesize];
InputStream is = sock.getInputStream();
FileOutputStream fos = new FileOutputStream("C:/Documents and Settings/HP_Administrateur/Mes documents/NetBeansProjects/DesktopApplication1/"+sock.getInetAddress().toString()+"/"+sock.getInetAddress().toString()+".txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
BufferedReader reception = new BufferedReader(new InputStreamReader(sock.getInputStream()));
PrintWriter envoi = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())),true);
message = reception.readLine();
System.out.println(message);
if(message.equalsIgnoreCase("full")){
envoi.println("ok");
System.out.println("ok");
File[] listeFichier;
listeFichier= listerFichier.listeDeFichiersDansDossierEtSousDossier("C:/Documents and Settings/HP_Administrateur/Mes documents/NetBeansProjects/DesktopApplication1/donnees/");
magicien10024
Messages postés3177Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention28 octobre 2018283
>
Boris94240
23 mars 2009 à 17:10
quand tu as 1 seule fichier ca ne pose pas de souci
ex si ton dossier fait 100 m° tu le compresse
ton fichier--> clic droit --> envoyer vers --> dossier compressé
Boris94240
>
magicien10024
Messages postés3177Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention28 octobre 2018 23 mars 2009 à 17:39
ha oui ok ... effectivement ca aurait été une solution si j'avais la possibilité de le faire mais je ne peux pas ....
Je dois sauvegarder tout le contenu d'un dossier ( c'est a dire fichers et sous dossiers qui sont dedans )
C'est pourquoi je liste tous les fichiers d'un repretoire avec la fonction suivante.
listeFichier= listerFichier.listeDeFichiersDansDossierEtSousDossier("C:/Documents and Settings/HP_Administrateur/Mes documents/NetBeansProjects/DesktopApplication1/donnees/");
je met le resultat dans un tableau de fichier
je regarde la taille qu'il fait et j'envoie au serveur le nombre d'envois qu'il va y avoir pour la boucle for
tout se passe nikel sauf que le serveur au moment de la reception ne reçoit rien bien que le client ai tout envoyé.
je suis vraiment a cours d'idee ...
magicien10024
Messages postés3177Date d'inscriptionmardi 22 janvier 2008StatutMembreDernière intervention28 octobre 2018283
>
Boris94240
23 mars 2009 à 18:52
j'avais la possibilité de le faire mais je ne peux pas
quand ton dossier ( ou sous dossier ca veut rien dire ) est compresser --> l'envoyer
le destinataire le décompresse et retrouve tout les fichiers qui s 'y trouve .
je suis vraiment à cours d'idee
prend le peine de faire 1 test si tu 'as pas d'idée
23 mars 2009 à 16:48
23 mars 2009 à 17:10
ex si ton dossier fait 100 m° tu le compresse
ton fichier--> clic droit --> envoyer vers --> dossier compressé
23 mars 2009 à 17:39
Je dois sauvegarder tout le contenu d'un dossier ( c'est a dire fichers et sous dossiers qui sont dedans )
C'est pourquoi je liste tous les fichiers d'un repretoire avec la fonction suivante.
listeFichier= listerFichier.listeDeFichiersDansDossierEtSousDossier("C:/Documents and Settings/HP_Administrateur/Mes documents/NetBeansProjects/DesktopApplication1/donnees/");
je met le resultat dans un tableau de fichier
je regarde la taille qu'il fait et j'envoie au serveur le nombre d'envois qu'il va y avoir pour la boucle for
tout se passe nikel sauf que le serveur au moment de la reception ne reçoit rien bien que le client ai tout envoyé.
je suis vraiment a cours d'idee ...
23 mars 2009 à 18:52
quand ton dossier ( ou sous dossier ca veut rien dire ) est compresser --> l'envoyer
le destinataire le décompresse et retrouve tout les fichiers qui s 'y trouve .
je suis vraiment à cours d'idee
prend le peine de faire 1 test si tu 'as pas d'idée