Hỏi về download file từ web bằng code C#

Mình có đoạn code sau trong c#

private void installDosBox()
{
    //download and install dosbox
    try {
        var dirInfo = new DirectoryInfo("\\");
        System.Net.WebClient webc = new System.Net.WebClient();
        webc.DownloadFile("https://yourwebsite.com/filename.zip", filename.zip);
        //   Process process = Process.Start("multilogin.exe");
        ZipFile.ExtractToDirectory("filename.zip", WORKING_PATH);
     //   process.WaitForExit();
    }catch(Exception e) {
        MessageBox.Show(e.Message);
        Application.ExitThread();
        Application.Exit();
    }
}

hiện tại thì chỉ tải 1 file zip duy nhất về
mình muốn tự động tải hết các file zip có trên đường link đó thì xử lý như nào ạ ?

  • Hiện tại thì mình thấy bn đang chỉ trỏ đến 1 tên file duy nhất (filename.zip). Theo mình hiểu thì nó chỉ lấy đúng 1 cái duy nhất
  • Hoặc các web bn cần lấy file nó có cấu trúc tập tin như thế nào?
1 Like

thì line webclient ấy chỉ cho phép tải 1 file duy nhất do mình chỉ định
ví dụ trên thư mục của site đó có tận 4 hay 5 file zip lận
và mình muốn là cùng lúc tải hết file có ext “.zip” ấy ạ

  1. đọc response text trả về và lọc ra các folder & file
  2. download danh sách các file bằng vòng lặp for, với folder/directory thì lại làm như bước 1 và 2 này (dùng đệ quy cho gọn)

hoặc nếu mục đích code chỉ cho việc sử dụng download quá nhiều file (không phải là cái gì đó như bài tập phải làm cho được) thì có thể thử với wget trên linux (window cũng đã có sub system để chạy nếu không muốn cài linux)

4 Likes

Có thể sử dụng như cách bn @kisuluoibieng nêu trên đó hoặc:

  • Lúc dùng cách số 2 dùng loop đọc tất cả file có trong folder và nén lại dow 1 lần luôn
    Thân ái @Pham_Hoang_Byn
2 Likes

cảm ơn mọi người, mình làm được rồi

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?