0

如何在系统路径中使用字符串变量?以下是 C# 代码示例:

  public class Test
   {
   public Item Met()
    {
     string file_name = "sample1.pdf";
     ///I' m just giving the code where I have the problem, not full code
     /// kindly ignore the syntax errors if any
     FileStream fileStream = File.OpenRead("c:\\Temp\\sample1.pdf"); 

      //   Here I tried "C:\\Temp\\" + file_name   //

    string requestBodyStart = "\r\n\r\n--BOUNDARY\r\n" +
                   "Content-Type: application/xml\r\n" +
                   "Content-Disposition: form-data\r\n" +
                "\r\n" +
                envDef + "\r\n\r\n--BOUNDARY\r\n" +       
                "Content-Type: application/pdf\r\n" +
                "Content-Disposition: file;filename=\"sample2.pdf\";  documentId=1\r\n" +         
                    "\r\n"; ///Here in place of "sample.pdf" I want to use variable name

            string requestBodyEnd = "\r\n--BOUNDARY--\r\n\r\n";

在第二种情况下,我尝试了"Content-Disposition: file;file_name=\" + file_name +\" 但我得到了这个:

无法识别的转义序列,意外的字符 '\'

这是在路径中使用变量的正确方法吗?

谢谢你。

4

5 回答 5

6

使用Path.Combine方法连接两个字符串路径。

string file_name = "sample1.pdf";
FileStream fileStream = File.OpenRead(Path.Combine("c:\\Temp", file_name);

还要考虑using语句 since FileStreamimplements IDisposable

于 2013-05-07T06:16:51.500 回答
2

"你在你的陈述中忘记了两个s

"Content-Disposition: file;filename=\"" + file_name + "\";  documentId=1\r\n" +

但我更喜欢String.Format

String.Format("Content-Disposition: file;filename=\"{0}\";  documentId=1\r\n", file_name) +
于 2013-05-07T06:18:33.403 回答
2

检查Path.Combine Method (String, String)方法。

将两个字符串组合成一个路径。

于 2013-05-07T06:18:33.527 回答
0

最好创建下载链接以读取文件。

.aspx:

<asp:Panel ID="AttachmentPanel" runat="server" Visible="false">
<asp:HyperLink ID="DownloadHyperLink" runat="server" Text="Download Attachment"</asp:HyperLink>
</asp:Panel>

。CS :

string file_name = "http://192.168.100.1:400/sample1.pdf";
this.DownloadHyperLink.Attributes.Add("OnClick", "window.open('" + file_name + "')");
于 2013-05-07T06:39:35.667 回答
-2

将字符串路径中的 '\' 替换为 '\\'

于 2013-05-07T06:16:55.847 回答