c#两个粘在一起的路径在ftp request.DownloadData中不起作用

时间:2011-10-30 14:59:18

标签: c#

        string slink = "\\README.TXT";
        string ipath = "C:\\Users\\Crystal\\Documents\\Visual Studio 2010\\Projects\\workspace\\workspace\\bin\\Debug";
        string test = lpath+"\\workspace\\"+slink;
        string test1 = "C:\\Users\\Crystal\\Documents\\Visual Studio 2010\\Projects\\workspace\\workspace\\bin\\Debug\\workspace\\README.TXT";
        string ftpfullpath = myUri.ToString();
        WebClient request = new WebClient();
        FileStream file = File.Create(@test);

如果我写FileStream file = File.Create(@test);我会收到错误的非法字符。 如果我写FileStream file = File.Create(@test1);它有效!

我认为粘贴多个字符串路径值有问题。我也试过了Path.Combine但也行不通了

4 个答案:

答案 0 :(得分:2)

在你的第三行代码中,你使用了lpath而不是ipath - 我假设这是一个错字

使用此:

string resultPath= Path.Combine(p1, p2);

MSDN Reference

答案 1 :(得分:0)

认为lpathipath的拼写错误,后者在README.TXT之前添加了一个额外的斜杠(或一组斜杠,具体取决于上下文)。

也就是说,

\\workspace\\README.TXT

变,

\\workspace\\\\README.TXT

答案 2 :(得分:0)

您正在撰写"..\\" + "\\..."

路径不能连续两个\

答案 3 :(得分:0)

问题在于你的滑动或测试。您拥有的代码最终具有以下路径:

C:\Users\Crystal\Documents\Visual Studio 2010\Projects\workspace\workspace\bin\Debug\workspace\\README.TXT

注意README.TXT之前的双斜杠?

这是因为slink成为:

\README.TXT

然后你试图把它与:

结合起来
C:\Users\Crystal\Documents\Visual Studio 2010\Projects\workspace\workspace\bin\Debug\workspace\

您可以执行以下两项操作之一来解决问题:

  1. 从slink
  2. 中删除\\
  3. 当您尝试将它们组合时,从“\\ workspace \\”中删除尾随的\\
  4. 我建议选项1 - 它清楚地将文件名与文件路径分开。在文件前面有\\表示文件名也有其路径信息