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:
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.