2012-02-15 221 views
0

它合乎理工作:<,这里是我的代码:将文件保存到文件夹

 public void buttonSaveTo_Click(object sender, EventArgs e) 
    { 
     FolderBrowserDialog fbd = new FolderBrowserDialog(); 
     fbd.ShowDialog(); 
     richTextBox1.Text = fbd.SelectedPath; 
     string destination = fbd.SelectedPath; 
    } 

,这是我尝试保存文件

   { 
       webClient.DownloadFile("http://i.imgur.com/" + picture, @"destionation" + picture); 
      } 

编辑答案 //好感谢但它仍然没有工作:<,也许我做错了错误,看看这是我写的所有代码

命名空间Imgur { public partial class Form1:Form { bool flag = true; int downloadedNumber = 0;

public Form1() 
    { 
     InitializeComponent(); 
    } 

    public void buttonStart_Click(object sender, EventArgs e) 
    { 
     buttonStart.Enabled = false; 
     buttonStop.Enabled = true; 
     if (!flag) 
     { 
      flag = true; 
     } 

     for (int i=0;i<100000 && flag;i++) 
     { 
      WebClient webClient = new WebClient(); 
      string pic1 = rnd_str(5); 
      string pic2 = ".jpg"; 
      string picture = pic1 + pic2; 

      //********** GETTING SIZE OF IMAGE *********** 
      Size sz = GetSize("http://i.imgur.com/" + picture); 
      string imageSize = (sz.Width.ToString() + " " + sz.Height.ToString()); ; 
      //******************************************** 

      if(imageSize != "161 81") 
      { 
       webClient.DownloadFile("http://i.imgur.com/" + picture, destination + picture); 

       richTextBox1.Text += String.Format("Downloaded picture: {0}\r\n", picture); 
       downloadedNumber++; 
       textBoxDownloadedNumber.Text = string.Format("{0}", downloadedNumber); 
      } 
      webClient.Dispose(); 
      Application.DoEvents(); 
      if (i == 999995) 
      { 
       flag = false; 
      } 
     } 
     richTextBox1.Text += "theend\n"; 
     buttonStart.Enabled = true; 
     buttonStop.Enabled = false; 
    } 

    public static Size GetSize(string url) 
    { 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
     request.Method = "GET"; 
     request.Accept = "image/gif"; 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
     Stream s = response.GetResponseStream(); 
     Bitmap bmp = new Bitmap(s); 
     Size sz = new Size(bmp.Width, bmp.Height); 
     return sz; 
    } 

    public static string rnd_str(int liczba_liter) 
    { 
     Random r = new Random(); 
     int char_type; 
     string return_string = ""; 
     int i =0; 
     for (i = 0; i < liczba_liter; i++) 
     { 
      if (r.Next(1, 3) == 1) 
      { 
       char_type = r.Next(1, 4); 
       switch (char_type) 
       { 
        case 1: 
         return_string += (char)r.Next(48, 58); // convertion int -> ASCII character; 48-57 are ASCII digits 
         break; 
        case 2: 
         return_string += (char)r.Next(97, 123); // convertion int -> ASCII character; as above but small letters 
         break; 
        case 3: 
         return_string += (char)r.Next(65, 91); // as above; large letters 
         break; 
        default: 
         i -= 1; 
         break;//do not add any letter if no type is allowed 
       } 
      } 
      else 
      { 
       i -= 1; 
       return_string += ""; 
      } 
     } 
     return return_string; 
    } 

    private void buttonStop_Click(object sender, EventArgs e) 
    { 
     flag = false; 
     buttonStart.Enabled = true; 
    } 

    public void buttonSaveTo_Click(object sender, EventArgs e) 
    { 
     FolderBrowserDialog fbd = new FolderBrowserDialog(); 
     fbd.ShowDialog(); 
     richTextBox1.Text = fbd.SelectedPath; 
     string destination = fbd.SelectedPath; 
    } 
} 

}

回答

1

您目前只是连接字符串,但你的文件夹名称可能不以目录分隔符字符结束。假设picture是您的图片的文件名(如foo.jpg)使用Path.Combine()而不是让框架为你做的工作:

var localFileName = Path.Combine(destination, picture); 
webClient.DownloadFile("http://i.imgur.com/" + picture, localFileName); 
0

你的“目的地”中的DownloadFile呼叫是一个字符串,而不是实际的变量。目标变量也必须在课程级别上。像这样:

private string destination; 
public void buttonSaveTo_Click(object sender, EventArgs e) 
{ 
     FolderBrowserDialog fbd = new FolderBrowserDialog(); 
     fbd.ShowDialog(); 
     richTextBox1.Text = fbd.SelectedPath; 
     destination = fbd.SelectedPath; 
} 

webClient.DownloadFile("http://i.imgur.com/" + picture, System.IO.Path.Combine(destionation, picture));