2009-11-20 4 views
0

Je veux télécharger un fichier et l'enregistrer localement sans aucun pop-ups pour l'utilisateur de choisir l'emplacement depuis son prédéfini. Le format du fichier sera probablement le pdf. Le chemin du fichier de téléchargement sera une URL et je veux l'enregistrer localement. Est-ce que je vais au travail comme ceci:Ouvrir le fichier et enregistrer

string fileName = "http://mail.example.com/download.asp?saveFile=example.pdf"; 

BinaryReader binReader = new BinaryReader(File.Open(fileName, FileMode.Open)); 

string path = "C:\\Domains\\shared.example.com\\pdf\\example.pdf"; 

using (BinaryWriter Writer = new BinaryWriter(new FileStream(path,FileMode.OpenOrCreate))) 
{ 
    Writer.Write(binReader); 
} 
+0

Il ressemble à C#/NET, mais vous devez spécifier la langue/cadre ... –

+0

Mon Méchants C#/NET –

+0

envisager d'utiliser de meilleurs noms. binReader -> binWriter au lieu de Writer. fileName qui est une URL (ou un chemin). Je suggère, String downloadPath, savePath – RvdK

Répondre

1

Cela est plus facile:..

WebClient wc = new WebClient(); 
wc.DownloadFile(filename, path); 
-1

Vous devez marquer la langue que vous utilisez.

Aussi je ne crois pas que les navigateurs laisseraient un fichier être téléchargé sans demander à l'utilisateur d'abord car c'est un problème de sécurité. Vous pourriez facilement jeter des virus sur les ordinateurs des gens sans qu'ils le sachent.

+0

En fait, il n'a jamais mentionné l'utilisation d'un navigateur. Et vous pouvez télécharger _anything_ sur le web sans que l'utilisateur le sache, tant que rien ne vous gêne (Firewall ou Virus-Scanner). – Bobby

+0

Je vais garder cela à l'esprit avec mon prochain post. * Note à soi-même pour éviter la confusion être plus descriptif * –

0

Non, cela ne fonctionne pas de cette façon ... vous devrez utiliser le WebRequest-Class pour acquérir le fichier.

Bobby

0

En utilisant

new WebClient().DownloadFile("http://url/name.pdf", @"C:\locationOnFilesystem.pdf"); 

Vous pouvez utiliser DownloadFileAsync faire sans bloquer votre thread principal. Attachez des gestionnaires d'événements à WebClient pour signaler la progression, comme DownloadProgressChanged et DownloadFileCompleted.

Questions connexes