如何在路径中使用字符串变量?

时间:2013-05-07 06:15:56

标签: c#

如何在系统路径中使用字符串变量?以下是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 +\" 但我得到了这个:

  

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

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

谢谢。

5 个答案:

答案 0 :(得分:6)

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

string file_name = "sample1.pdf";
FileStream fileStream = File.OpenRead(Path.Combine("c:\\Temp", file_name);
自从FileStream实现IDisposable以来,

还要考虑using语句。

答案 1 :(得分:2)

你在陈述中遗忘了两个"

"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) +

答案 2 :(得分:2)

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

  

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

答案 3 :(得分: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 + "')");

答案 4 :(得分:-2)

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