I want to create a program that can go into a parent directory, travel to each folder in the directory and then download each file from each folder. I'd also like to make it so that I can control the number of folders it downloads at a time, e.g. if there's 100 folders, then be able to tell it to download folders 1-10, then at another point tell it to download folders 11-20.
This is the code that I have so far:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
WebClient wc = new WebClient();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
List<string> linkList = new List<string>();
string url = textBox1.Text;
string source = workerclass.getsource(url);
int startindex = source.IndexOf("folder.gif");
source = source.Substring(startindex, source.Length - startindex);
while (source.IndexOf("<a href=") != -1)
{
startindex = source.IndexOf("<a href=") + 9;
int endindex = source.IndexOf("/", startindex);
string link = source.Substring(startindex, endindex - startindex);
string fullink = url + link;
linkList.Add(fullink);
source = source.Replace("<a href=" + @"""" + link, "");
}
foreach (string link in linkList)
{
List<string> linkList2 = new List<string>();
string newurl = textBox1.Text;
string source2 = workerclass.getsource(newurl);
int startindex2 = source.IndexOf("folder.gif");
source2 = source2.Substring(startindex, source2.Length - startindex2);
while (source2.IndexOf("<a href=") != -1)
{
startindex2 = source2.IndexOf("<a href=") + 9;
int endindex2 = source2.IndexOf("/", startindex);
string link2 = source.Substring(startindex2, endindex2 - startindex);
string fullink2 = newurl + link2;
linkList2.Add(fullink2);
source2 = source2.Replace("<a href=" + @"""" + link2, "");
}
foreach (string link2 in linkList2)
{
Uri reallink = new Uri(link2);
WebClient wc2 = new WebClient();
wc.DownloadFileAsync(reallink, link2+" file.zip");
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Would this work to grab each file in each folder and download it? How would I tell it how many/which folders to download at one time as I previously mentioned?