如何在系统路径中使用字符串变量?以下是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 +\"
但我得到了这个:
无法识别的转义序列,意外字符'\'
这是在路径中使用变量的正确方法吗?
谢谢。
答案 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)
将'\'替换为字符串路径中的'\\'