TÉLÉCHARGER UN FICHIER

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 18 août 2004 à 21:03
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 - 22 août 2007 à 09:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25513-telecharger-un-fichier

cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
22 août 2007 à 09:23
:-)

C'est marrant les gouts et les couleurs. Par exemple moi, je préfère largement les accolades en fin de ligne, parceque je déteste perdre de la place. En effet, tu grilles une lignes à chaque fois pour un seul caractère... Bon, après, je vais pas mettre tout le code sur une seule ligne non plus, faut pas abuser ^^

Sinon, au tout départ, ce code ne comprenait que les 2 lignes strictement nécéssaires au téléchargement d'un fichier... on m'a demandé de mettre ça dans un thread, ce que j'ai fait. Si maintenant tu veux un méthode DownloadAsync, je pense que tu as suffisamment d'élément pour l'écrire (et nous la proposer ensuite ^^)

a+
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
22 août 2007 à 03:23
Qu'est ce que c'est laid les accolades ouvrantes en fin de ligne :'(
Hein ? Quoi ? Hors sujet ?
Meuhhh non ... pourquoi vous achetez un nouveau téléphone portable tous les 3 mois
qui fait la même chose que votre ancien si ce n'est pour le look :p ?

Bon trève de plaisanterie... sympa la source !
Mais tant qu'à faire un truc rapide (on arrive sur le site on copie colle et hop c'est bon),
je prefererais UNE fonction toute seule. Inutile de mettre le code pour la form etc ..
genre ça commencerai par :

public bool DownloadAsync(string url, string path /*, + 1 delegate pour quand le download est terminé ?*/)
{
Boolean res = new Boolean(true);
System.Threading.Thread th =
new System.Threading.Thread(new System.Threading.ThreadStart(delegate ()
{
try
{
//...
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
21 mars 2007 à 03:36
As-tu créé un projet console ?
Si c'est le cas, c'est normal. Sois tu ajoutes la référence à cette assembly, dans les références de ton projet, sois tu recréé un projet de type "application windows".
Dis moi si tu as des problèmes pour ça.
armand19841984 Messages postés 3 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 31 mai 2008
20 mars 2007 à 21:09
slt yoannd ,chez moi kan je test ton programme ca me dit cette erreur :

Le type ou le nom d'espace de noms 'Windows' n'existe pas dans la classe ou l'espace de noms 'System' (une référence d'assembly est-elle manquante ?)

tu peux mexpliquer pkoi stp?

merci
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
18 mai 2005 à 09:23
Alors là, je ne pensait pas qu'il fesait ca ! lol !

Je sais pas vraiment quoi te dire, sinon que tu peux peut-être regarder la taille du fichier téléchargé, et s'il fait 0 ko, c'est que c'est pas bon.... c'est un peu bidouille, mais bon...
sam_sam80 Messages postés 2 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 14 mai 2005
14 mai 2005 à 20:48
Salut,
Merci pour ce code qui m'a vraiment aidé.
Je l'ai essayé mais il y'a un petit problème. Lorsque le l'uri est valide mais le fichier n'existe pas il télécharge quand même un fichier bidon.
Y'a-t-il un moyen de controler ça? J'ai beau chercher j'en ai pas trouver.

Sam
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
6 déc. 2004 à 12:45
Aucune idée ! lol
cs_fredza Messages postés 14 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 5 octobre 2007
6 déc. 2004 à 12:07
Salut,

Et comment faire si derrière un proxy ? (avec authentification)

Frédéric
Servlax Messages postés 14 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 20 juillet 2007
1 oct. 2004 à 21:13
Je trouve cette source très bien.

Pas besoin de compliquer pour rien en effet.

;)
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
20 août 2004 à 16:05
;-)

De rien Stailer
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 1
20 août 2004 à 08:47
Super ! merci beaucoup. En plus c'est bien expliqué.
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
19 août 2004 à 20:45
bon ben voila, c'est dans un thread maintenant. C'est mieux là ?
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 1
19 août 2004 à 17:38
je comprends ton point de vue et ton code n'est pas inutile.

Seulement il est tellement court (3 lignes) qu'il me semble que l'utilisation d'un thread ici n'aurait pas gêné grand monde à la compréhension.

Surtout que le thread lui-même ne va pas demander 20 lignes de code.

Et puis bon : les débutants.... Regarde moi : je débute. Les 3 quarts de ceux qui viennent ici n'en sont pas à leur premier langage.

Et quand bien même ca le serait, es-tu certains que commencer par ce type de prog est bien raisonnable ?
Ne vaut-il pas mieux commencer par la syntaxe, les conditions, les classes et les objets , les thread ... etc ?
Car en partant de ton principe je vais faire le débutant de base : "EUh c'est koi dispose ?".

Et oui, tu ne l'as même pas expliqué dans ton commentaire.
Tu comprends mon point de vue maintenant ?
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
19 août 2004 à 17:18
alors...
pour répondre à Cyril : Je ne connais pas encore de méthode permettant de récupérer l'avancement du téléchargement (peut-être que l'objet WebClient possède des évènements prévus à cet effet... mais je n'en suis pas sûr du tout)

TheSib : ouais, c'est court, et c'est vraiment fait express. Je voulais juste exposer ici la méthode la plus simple qui soit.

Stailer : J'ai fait exprès de ne pas mettre ca dans un thread pour deux raisons :
- les exemples sur les threads, il y en a un paquet,
- je voulais faire quelque chose de très simple et très court, sans que tout ca soit perturbé par du code autre que la gestion des threads.

voila :-)
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 1
19 août 2004 à 10:55
Je dirai même : c'est très court.

T'aurais au moins pu mettre tout ça dans un thread... Histoire de montrer aux débutants ce qu'ils sont, en plus de téléchargement de fichier.

4/10
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
19 août 2004 à 00:32
Tu peux faire de l'asynchone aussi ...

Et le Webclient est une méthode parmi tant d'autres.


C'est vrai que c'est super court quand même ...
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
18 août 2004 à 21:03
c'est vrai que c'est court, mais ca resume tres bien :)

Mais connaitrais tu une méthode qui permet de download un fichier avec un avancement ? (Telechargement terminé à 25%)


Cyril
Rejoignez-nous