c# – WebClient DownloadFile路径中的非法字符

我是新手,所以我确信这是我缺少的基本功能.

我有一个简单的程序来运行一个csv文件,其中包含指向图像的链接,以将这些图像保存在指定的保存文件位置.

我正在将包含url的单元格解析为List< string []>.

如果我把GetImage(@“http://www.example.com/picture.jpg”,1)放入我的GetImage函数就可以了.当我尝试使用循环并传入str [0]变量时,我收到有关路径中非法字符的错误.

我用MessageBox告诉我有什么区别,据我所知,当我将str [0]传递给函数时,它会添加双引号(即“http://www.example.com”)当我发送一个字符串时,显示而不是http://www.example.com.

我究竟做错了什么?

private void button2_Click(object sender, EventArgs e)
    {
        string fileName = textBox1.Text;            
        folderBrowserDialog1.ShowDialog();
        string saveLocation = folderBrowserDialog1.SelectedPath;
        textBox2.Text = saveLocation;            
        List<string[]> file = parseCSV(fileName);
        int count = 0;
        foreach (string[] str in file)
        {
            if (count != 0)
            {                                                          
                GetImage(str[0], str[4]);                    
            }
            count++;
        }
        //GetImage(@"http://www.example.com/picture.jpg", "1");
    }


    private void GetImage(string url, string prodID)
    {   
        string saveLocation = textBox2.Text + @"\";;
        saveLocation += prodID + ".jpg";                        
        WebClient webClt = new WebClient();
        webClt.DownloadFile(url, saveLocation);                         
    }

最佳答案 无论哪个函数或方法创建这些引号,您都可以替换它们.

String myUrl = str[0];
myUrl = myUrl.Replace("\"", "");
GetImage(myUrl, str[4]);

我认为你的文件包含引号或parseCSV方法创建它们.

更新:

我使用了这段代码,它完全没有问题,没有引号:

static void Main(string[] args)
{
  string fileName = "Test";
  //folderBrowserDialog1.ShowDialog();
  string saveLocation = ".\\";
  //textBox2.Text = saveLocation;
  List<string[]> file = new List<string[]>
  {
    new string[] { "http://www.example.com", "1", "1", "1", "1"},
    new string[] { "http://www.example.com", "2", "2", "2", "2"},
  };
  int count = 0;
  foreach (string[] str in file)
  {
    if (count != 0)
    {
        GetImage(str[0], str[4]);
    }
    count++;
  }
//GetImage(@"http://www.example.com/picture.jpg", "1");
}


private static void GetImage(string url, string prodID)
{
  string saveLocation = ".\\"; // textBox2.Text + @"\"; ;
  saveLocation += prodID + ".jpg";
  WebClient webClt = new WebClient();
  Console.WriteLine(url);
  webClt.DownloadFile(url, saveLocation);
}
点赞