c#两条粘在一起的路径don';无法在ftp请求中工作。下载数据

c#两条粘在一起的路径don';无法在ftp请求中工作。下载数据,c#,C#,如果我写FileStream file=file.Create(@test)我获取错误非法字符。 如果我写FileStream file=file.Create(@test1)它工作 我认为粘合多个字符串路径值有问题。我也尝试了Path.Combine,但也不起作用假设lpath是ipath的打字错误,后者在README.TXT之前添加一个额外的斜杠(或斜杠集,取决于上下文) 就是说, string slink = "\\README.TXT"; string i

如果我写
FileStream file=file.Create(@test)我获取错误非法字符。
如果我写
FileStream file=file.Create(@test1)它工作


我认为粘合多个字符串路径值有问题。我也尝试了
Path.Combine
,但也不起作用假设
lpath
ipath
的打字错误,后者在
README.TXT
之前添加一个额外的斜杠(或斜杠集,取决于上下文)

就是说,

        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);
变成

\\workspace\\README.TXT
您正在编写
。\\“+”\\…“


路径不能有两个连续的
\
s.

在第三行代码中,您使用了lpath而不是ipath-我假设这是一个输入错误

使用以下命令:

\\workspace\\\\README.TXT

问题在于你的偷懒或考试。您的代码以以下路径结束:

string resultPath= Path.Combine(p1, p2);
注意README.TXT之前的双斜杠吗

这是因为slink变为:

C:\Users\Crystal\Documents\Visual Studio 2010\Projects\workspace\workspace\bin\Debug\workspace\\README.TXT
然后您尝试将其与以下内容结合起来:

\README.TXT
您可以执行以下两种操作之一来修复此问题:

  • 从slink中删除\\
  • 尝试组合时,请从“\\workspace\\”中删除尾随\\

  • 我建议选择1-它清楚地将文件名与文件路径分开。文件前面的\\表示文件名也有其路径信息

    您在调试器中查看了字符串吗?问题是您的
    测试
    包含两个\\(一个来自
    “\\workspace\\\”
    的末尾,另一个来自
    slink
    的开头)…仅供参考,您不需要编写
    @test
    。你只需要
    @
    来标识在C#中非法的标识符,比如
    @class
    @Gabe:他认为这是一个
    @
    -string@SLaks当前位置我考虑过,但由于他已经有两次反斜杠,我认为这个理论没有多大意义。额外的反斜杠不应该是问题,因为它们会被忽略。这不应该是问题:
    File.Create(“c:\\\\foo\\\\file1.xml”)可以正常工作。我使用a=Path.combine(lpath,“workspace”)b=Path.combine(a,slinki)进行调试在这里我得到了erorr非法字符。。在对erorr进行调试时,a=“C:\\Users\\Crystal\\documents\\visual studio 2010\\Projects\\workspace\\workspace\\bin\\debug\\workspace”b=“README.TXT\r”还尝试了slinki=slinki.replace(@“\”,”);
    
    C:\Users\Crystal\Documents\Visual Studio 2010\Projects\workspace\workspace\bin\Debug\workspace\