string FilePath="E:\\FolderClient\\";
string FileName="adow.htm";
string AllFileName=FilePath+FileName;结果是:
@"E:\FolderClient\adow.htm"

解决方案 »

  1.   

    没有报错。我有一个函数private int FileTransfer(string FileName,string FilePath)
    当我直接调用FileTransfer("adow.htm","E:\\FolderClient")时一切都正常,里面的的FileName+FilePath也是对的。
    可是当我在另一个函数中调用时,这两个参数是从网络上传来的(FileName,FilePath),调用这个函数时,里面相加就出错了,也没有转义
      

  2.   

    改成用StringBuilder.Append()试试看吧!
      

  3.   

    我发现是传过来的。我在函数里把值输出来看到
    FileName="adow.htm"
    FilePath="E:\\FolderClient",居然是两个“\\"
    相加是只有"E:\\FolderClient",
      

  4.   

    我试了一下:
    using System;
    class test {
    public static int Main() {
      string FilePath="E:\\FolderClient\\";
    string FileName="adow.htm";string AllFileName=FilePath+FileName;
      
      Console.WriteLine("你刚刚输入[{0}]",AllFileName);
    return 0;
      }
    }
    运行结果是:你刚刚输入[E:\FolderClient\adow.htm]
    我想我我的意思和楼主一样的对不?但是我不明白你那里会有问题呢?
      

  5.   

    string AllFileName=FilePath+@FileName;你看看@的作用
      

  6.   

    private void button1_Click(object sender, System.EventArgs e)
    {
    string FilePath="E:\\FolderClient\\";
    string FileName="adow.htm";
    string AllFileName=FilePath+FileName;
    label1.Text=AllFileName;
    }
    我的输出结果是    E:\FolderClient\adow.htm对的呀
      

  7.   

    问题就出在了你是远程调用上了,比如你如果用了System.Runtime.Remoting,你的string是一个按地址引用值的变量,而你的在远程是不能得到远程的那个变量的地址的,就是得到了也不是本机的也不能使用,所以你可以用System.Text.StringBuilder来试试,把那个字符串当成一个值来用,而不是按"地址"来用.
      

  8.   

    string FilePath=@"E:\\FolderClient\\";
    string FileName="adow.htm";
    string AllFileName=FilePath+FileName;这样写就可以了.
      

  9.   

    我想我发现问题所在了。我的接收变量是通过
    byte[] BfXFilePathWeb=new byte[255];
    byte[] BfXFileNameWeb=new byte[255];
    string StrXFilePathWeb=Encoding.ASCII.GetString(BfXFilePathWeb);
    string StrXFileNameWeb=Encoding.ASCII.GetString(BfXFileNameWeb);
    好象是StrXFilePathWeb,StrXFileNameWeb中还有好多'\0',但他们的长度是8和15,
    我通过对他们分别Trim(new char[] {'\0'})之后是取到了正确的值,但是两个'\\'问题还是没变,不过可以相加了。