为MailMessage.Attachments添加附件时用的是完整的路径但用MailMessage.Attachments[i].Name 方法只返回文件名如果要返回带路径的字符串(类似@"c:\test.txt")应该怎么写? 

解决方案 »

  1.   

    建议你发邮件的时候把路径和文件名记录下来,然后方便查询。这样做意义不大,既然你都可以[index].name那你肯定很容易的知道传入的path。
      

  2.   

    可以这么获取 Console.WriteLine(System.IO.Path.GetFullPath(mail.Attachments[0].Name));
      

  3.   

    那你传入的时候不就可以通过System.IO.Path.GetFullPath(filename)获取吗
      

  4.   

    Attachment 给了文件路径后,会把文件转换成 文件流,所以无法获得文件路径,只能得到文件流 a.ContentStream文件流
      

  5.   

    如果真相获取完整路径,你考虑下这个方法。
             
    ....
      string[] files="c:\\123.txt;d:\\123.txt;e:\\123.txt".Split(';');
               Dictionary<int,string> dpath = new Dictionary<int,string>();
               for(int i=0;i<files.Length ;i++)
               {
                   dpath.Add(i, files[i]);
                   mail.Attachments.Add(new Attachment(files[i]));           }
    ...........
              for (int i = 0; i < mail.Attachments.Count; i++)
               {
                   Console.WriteLine(dpath[i].ToString());
               }//索引位置对应一致,可以正常获取路径。别无他法。