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

C# Discussion :

telecharger un fichier d'un serveur sous c# pour un windows CE


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut telecharger un fichier d'un serveur sous c# pour un windows CE
    Bonjour tout le monde,

    Je cherche à télécharger un .zip d'un serveur http sous c#, c'est pou run windows CE. En charchant sur internet j'ai pu trouver qu'il y a une méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WebClient myWebClient = new WebClient(); 
    myWebClient.DownloadFile(LienServeur,fileLocation);
    Malheureusement, le WebClient n'est pas reconnu sous windows CE, est ce que quelqu'un pourra m'aider?

    Merci d'avance

  2. #2
    Membre actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Points : 290
    Points
    290
    Par défaut
    Salut,
    Avant tous une petite précision : .NET est assuré dans Windows CE par une version allégée du Framework : Le Compact Framework .NET
    Donc documente toi sur ce Framework pour trouver les méthodes appropriées, Sinon voila comment je Fais sous windows :

    - Tu va dans l'explorateur de solution->Références (clic droit)->Ajouter une référence->(dans l'onglet .NET) Cherche Microsoft.VisualBasic->Ok

    - Ensuite tu ajoute la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Using Microsoft.VisualBasic.Devices;
    - Et pour le code tu écrit c'est quelques lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.DoEvents();//Pour liberer l'application l'application à d'autre tâches pendant le téléchargement
    Computer MyComp = new Computer(); //Objet de type Computer
                MyComp.Network.DownloadFile(@"URLdeTelechargement",@"DossierDeDestination\NomDuFichierDeSortie");
    le '@' sert à dire à C# qu'il s'agit d'un chemin d'accès.

    @++
    Programmer c'est comme dessiner.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    Merci pour la réponse, mais ca marche toujours pas il reconnait pas Computer même en ajoutant la référence que tu m'a donné

  4. #4
    Membre actif Avatar de oussi
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 192
    Points : 290
    Points
    290
    Par défaut
    Salut,
    Il doit bien y avoir un équivalent dans le Compact Framework.
    Je vais chercher si je trouve quelque chose je te fait signe.
    Programmer c'est comme dessiner.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    Merci Oussi pour tes réponse, j'ai réussi a trouver la solution en utilisant des Stream voici le code pour ceux interessés:

    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
     
     
           /// <summary>
            /// Telecharger un fichier d'un serveur
            /// </summary>
            /// <param name="url">URL Serveur</param>
            /// <param name="destination">Destination sur disque dur</param>
            /// <returns></returns>
            public static bool DownloadFile(string url, string destination)
            {
                bool success = false;
     
                System.Net.HttpWebRequest request = null;
                System.Net.WebResponse response = null;
                Stream responseStream = null;
                FileStream fileStream = null;
     
                try
                {
                    request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
                    request.Method = "GET";
                    request.Timeout = 100000; // 100 seconds
                    response = request.GetResponse();
     
                    responseStream = response.GetResponseStream();
     
                    fileStream = File.Open(destination, FileMode.Create, FileAccess.Write, FileShare.None);
     
                    // read up to ten kilobytes at a time
                    int maxRead = 10240;
                    byte[] buffer = new byte[maxRead];
                    int bytesRead = 0;
                    int totalBytesRead = 0;
     
                    // loop until no data is returned
                    while ((bytesRead = responseStream.Read(buffer, 0, maxRead)) > 0)
                    {
                        totalBytesRead += bytesRead;
                        fileStream.Write(buffer, 0, bytesRead);
                    }
     
                    // we got to this point with no exception. Ok.
                    success = true;
                }
                catch (Exception exp)
                {
                    // something went terribly wrong.
                    success = false;
                    Debug.WriteLine(exp);
                }
                finally
                {
                    // cleanup all potentially open streams.
     
                    if (null != responseStream)
                        responseStream.Close();
                    if (null != response)
                        response.Close();
                    if (null != fileStream)
                        fileStream.Close();
                }
     
                // if part of the file was written and the transfer failed, delete the partial file
                if (!success && File.Exists(destination))
                    File.Delete(destination);
     
                return success;
            }

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/06/2009, 15h50
  2. telecharger un fichier d'un serveur
    Par affreuxzozo dans le forum Langage
    Réponses: 2
    Dernier message: 14/05/2009, 16h07
  3. Réponses: 1
    Dernier message: 22/05/2008, 13h23
  4. Réponses: 1
    Dernier message: 19/09/2006, 12h14
  5. Telecharger un fichier hors du serveur web
    Par ChrOnOs83 dans le forum Langage
    Réponses: 4
    Dernier message: 27/06/2006, 21h45

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