2012-02-01 23 views
11

Tôi cần tải xuống các tệp pdf từ một liên kết được chỉ định (url) đến một thư mục cụ thể trong ứng dụng cửa sổ bằng cách sử dụng winforms, vui lòng bất kỳ ai có thể đề xuất cho tôi giải pháp.Cách tải tệp xuống đường dẫn cụ thể từ một url nhất định trong biểu mẫu cửa sổ?

+0

bản sao có thể có của [Cách tải xuống tệp từ trang web trong C#] (http://stackoverflow.com/questions/525364/how-to-download-a-file-from-a-website-in-c -sharp) – Jehof

Trả lời

24
using System.Net; 

using (WebClient webClient = new WebClient()) 
{ 
    webClient.DownloadFile("http://mysite.com/myfile.txt", @"c:\myfile.txt"); 
} 
+3

Mã này không chính xác! OP muốn các tệp PDF. :)) – Neolisk

+2

Tôi thử nghiệm nó, đường dẫn có thể được bao gồm trong tên tập tin. chính xác của nó –

6

Bạn có thể chỉ là "tìm kiếm trên web" (hay còn gọi là google) cho "C tập tin # tải", và kết thúc với this simple MSDN example (sửa đổi để phù hợp với câu hỏi cụ thể của bạn):

string remoteUri = "http://www.test.com/somefile.pdf"; 
string fileName = "c:\\targetfolder\\somefile.pdf"; 

WebClient myWebClient = new WebClient(); 
myWebClient.DownloadFile(remoteUri,fileName); 
+7

nhận xét vui ... Nhiều người làm điều này (tôi bao gồm), _avoid_ MSDN tài liệu tham khảo và đi _directly_ đến một bài stackoverflow. –

+0

Làm cách nào tôi có thể tải xuống từ một đường dẫn như thế này \\ appsupld \ Uploads \ OfficeAutomation \ OMA \ Downloads \ thay vì đường dẫn http. Khi tôi thử nó tôi nhận được tập tin không tìm thấy ngoại lệ? – Kumar

7

Bạn có thể sử dụng phương thức WebClient.DownloadFile, có sẵn từ .NET 2.0. Nó có thể sử dụng từ bất kỳ loại ứng dụng nào, không chỉ là Winforms.

Bạn nên lưu ý rằng các khối DownloadFile cho đến khi toàn bộ tệp hoàn tất tải xuống. Để tránh bị chặn, bạn có thể sử dụng WebClient.DownloadFileAsync phương pháp đó sẽ tải ở chế độ nền và nâng cao sự kiện DownloadFileCompleted khi tải hoàn thiện

+0

Cảm ơn kanavos nó đã giúp tôi rất nhiều nhờ thông tin .......... –

0
myWebClient.DownloadFile(myStringWebResource,fileName); 

Nếu không phải là con đường mục tiêu không được xác định và nếu bạn cho nó như file.abc nó được tải về một con đường gọi là Application.StartupPath như tên của file.abc vì vậy, bạn chỉ phải từ bỏ con đường cụ thể của bạn như @"C:\\Folder1\\Folder2\\file.abc"

tôi nghĩ rằng điều này sẽ giúp nhiều hơn một chút. Tôi không thể có được nó ở trang web đầu tiên của mã mẫu được cung cấp bởi MSDN và cuối cùng tôi tìm thấy điều này.

Các vấn đề liên quan