我的建議取決於你如何richTextBox.Text樣子,但如果它有一個定義的分隔符 - 下面的代碼應工作 - 它會分裂你的文本行,然後將執行你的在每一行要求:
private void button1_Click(object sender, EventArgs e)
{
string[] movies = richTextBox1.Text.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
foreach (string item in movies)
{
item.Trim();
HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(item);
hwr.Method = "HEAD";
HttpWebResponse res = (HttpWebResponse)hwr.GetResponse();
long len = res.ContentLength;
long a =len/1024;
long b = a/1024;
MessageBox.Show(b.ToString()+" MB");
}
}
編輯 - 我覺得代碼將更好地工作,如果它是異步的,也可以是這樣的:
List<long> Length = new List<long>();
List<string> Movies = new List<string>();
private async void button1_Click(object sender, EventArgs e)
{
await getLength(Regex.Split(richTextBox1.Text, "\r\n|\r|\n"));
string text = "";
for (int i = 0; i < Movies.Count; i++)
text += Movies[i] + " Length: " + Length[i].ToString() + "\n";
MessageBox.Show(text);
}
private async Task getLength(string[] movies)
{
Task[] tasks = new Task[movies.Length];
for (int i = 0; i < movies.Length; i++)
{
Movies.Add(movies[i].Trim());
Length.Add(0);
tasks[i] = getOnesLength(i);
}
await Task.WhenAll(tasks);
}
private async Task getOnesLength(int index)
{
HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(Movies[index]);
hwr.Method = "HEAD";
HttpWebResponse res = (HttpWebResponse) await hwr.GetResponseAsync();
long len = res.ContentLength;
long a = len/1024;
long b = a/1024;
Length[index] = b;
}
在這種情況下,您的UI不應該被阻止,並且在獲取所有鏈接的信息完成時您應該看到一個MessageBox。當然,這段代碼沒有異常處理等,但它可能是一個好的開始。
按尺寸,你的意思是計數? – crush
我只是想舉個例子,我有一個移動鏈接,它有700mb size.now我有多個鏈接richtextbox.how我得到所有鏈接的大小? – master
什麼是*移動鏈接*?爲什麼鏈接700MB的大小? – crush