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 :

Fichier qui ne se télécharge pas et fichier qui ne se modifie pas


Sujet :

C#

  1. #1
    Membre à l'essai
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2015
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Fichier qui ne se télécharge pas et fichier qui ne se modifie pas
    Bonjour, j'ai actuellement deux problème:


    Je suis entrain de crée un système de mise à jours automatique sur mon logiciel.
    Tous fonctionne bien, mais le fichier qui doit se télécharge, se télécharge bien mais il ne pèse que 1Ko alors qu'il pèse 1Mo.
    Quand j'ouvre le fichier ZIP, sa me dit que l'archive est endommager (alors que le vrai fichier ZIP fonctionne bien)

    Pour mon deuxième problème, lorsque j'ouvre mon logiciel, la mise à jours se complète, et puis j'ai une erreur qui me dit que "le fichier version.txt est déjà en cours d'utilisation et ne peux pas être modifier". Je ne comprend pas, le fichier n'est ouvert nul part o_O

    Voici le 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
    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
    101
    102
    103
     
     
    using System;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    using System.Diagnostics;
    using ICSharpCode.SharpZipLib.Core;
    using ICSharpCode.SharpZipLib.Zip;
     
    namespace Launcher
    {
     
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private string VersionActuelle;
            private bool VerifyVersion()
            {
                StreamReader VersionReader = new StreamReader("version.txt");
                string VersionClient = VersionReader.ReadToEnd(); // Lit le fichier version.txt dans le dossier ULDATA (Uplauncher Data)
                VersionActuelle = ReadRemoteTextFile("http://lsl-rp.ga/landwars/version.txt"); // Lien à modifier
                if (VersionActuelle == VersionClient)
                    return true;
                else
                    return false;
            }
     
            private string ReadRemoteTextFile(string Url)
            {
                Uri uri = new Uri(Url); // Nouvelle URI à partir du paramètre, Url.
                WebRequest wRequest = WebRequest.Create(uri); // On crée une requête.
                WebResponse wResponse = wRequest.GetResponse(); // Sa réponse.
                Stream ResponseStream = wResponse.GetResponseStream(); // En stream. 
                StreamReader sReader = new StreamReader(ResponseStream); // Un "lecteur" de stream..
                string Temp = sReader.ReadToEnd(); // Qui lit le stream et nous donne le string. 
                return Temp;
            }
            private void Download(string Url, string DownloadTo)
            {
                WebClient wClient = new WebClient(); // On crée un WebClient, qui se chargera du téléchargement.
     
                wClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(UpdateProgressChange);   // On lui ajoute le handler de l'évènement.
     
                wClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(UpdateDone); // L'autre évènement (Complétion)
     
                wClient.DownloadFileAsync(new Uri(Url), DownloadTo); // On commence le téléchargement depuis l'URI       spécifiée, et le fichier sera mis dans le chemin DownloadTo.
     
            }
            private void UpdateProgressChange(object sender, DownloadProgressChangedEventArgs e)
            {
                progressBar.Value = e.ProgressPercentage; // Simple!
            }
            private void UpdateDone(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
            {
               // FastZip fastZip = new FastZip();
                //string fileFilter = null;
     
                MessageBox.Show("Mise à jour terminée! Vous pouvez désormais jouer.", "Notification"); // Message.
                btnPlay.Enabled = true; // Vous vous souvenez de ça? On le remet à true. 
                                        //NOTE : Si vous avez un .rar à télécharger, et vous voulez l'extraire, utiliser SharpZipLib. Je ne ferai pas de tuto pour l'instant sur cela. 
                File.Delete("version.txt");
                StreamWriter sWriter = File.CreateText("version.txt");
                sWriter.Write(VersionActuelle);
                System.Threading.Thread.Sleep(5000);
                //fastZip.ExtractZip("maj.zip", "", fileFilter);
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                btnPlay.Click += new EventHandler(btnPlay_Click);
                btnSite.Click += new EventHandler(btnSite_Click);
                btnPlay.Enabled = false;
                if (VerifyVersion())
                {
                    btnPlay.Enabled = true; // Version actuelle, OK!
                }
                else
                {
                    Download("http://lsl-rp.ga/landwars/update/", "maj.zip"); // Télécharger si la version n'est pas actuelle
                }
     
            }
     
            private void btnPlay_Click(object sender, EventArgs e)
            {
                Process p = new Process();
                p.StartInfo = new ProcessStartInfo("Landwars.exe");
                p.StartInfo.Arguments = "-game 751a5893e0f64feb22437f285ba4d21b29b58275205cdd12";
                p.Start();
     
                Application.Exit();
            }
     
            private void btnSite_Click(object sender, EventArgs e)
            {
                System.Diagnostics.Process.Start("http://lsl-rp.ga/landwars/");
            }
        }
    }
    Merci de votre aide
    Cordialement.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par xnooztv1 Voir le message
    Pour mon deuxième problème, lorsque j'ouvre mon logiciel, la mise à jours se complète, et puis j'ai une erreur qui me dit que "le fichier version.txt est déjà en cours d'utilisation et ne peux pas être modifier". Je ne comprend pas, le fichier n'est ouvert nul part o_O
    Les classes telles que StreamReader, Stream et WebResponse implémentent l'interface IDisposable.
    Par conséquent, les ressources de tels objets ne seront libérées que lors de l'appel de la méthode Dispose() sur chacuns de ces objets.
    C'est pourquoi tu as une erreur relative à ton fichier Version.txt.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par xnooztv1 Voir le message
    Tous fonctionne bien, mais le fichier qui doit se télécharge, se télécharge bien mais il ne pèse que 1Ko alors qu'il pèse 1Mo.
    Quand j'ouvre le fichier ZIP, sa me dit que l'archive est endommager (alors que le vrai fichier ZIP fonctionne bien)
    Je pense que le problème vient de la portée de la variable WebClient qui est déclarée dans la méthode DownLoad().
    Il faudrait pour commencer que tu déclares ta variable wClient au niveau de Form1, afin que sa durée de vie soit liée à la durée de vie de Form1.
    Ensuite, si cela ne fonctionne toujours pas , regarde dans la méthode UpdateDone() la propriété Error du paramètre System.ComponentModel.AsyncCompletedEventArgs e;
    tu auras peut être d'autres informations concernant ce problème de téléchargement.

    @+

    ;-)

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/11/2015, 23h15
  2. Réponses: 5
    Dernier message: 23/05/2014, 14h09
  3. Réponses: 3
    Dernier message: 12/05/2009, 16h30
  4. Setup qui ne deploie pas les fichiers de ressources
    Par chris81 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 04/02/2009, 17h48
  5. Réponses: 4
    Dernier message: 29/12/2007, 12h53

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