在特定字符后将字符添加到字符串中

时间:2017-08-06 09:56:19

标签: c#

为了能够在asp.net中读取文件,文件路径必须写成: 1。

C:\\yung\\Desktop

返回 但是,fileUpload获取的字符串是 2。

C:\yung\Desktop

阅读评论后,我有这段代码:

        string FilePath = FileUploadPublicInfo.PostedFile.FileName;
        System.IO.StreamReader file = new System.IO.StreamReader(FilePath);
        string line = File.ReadLines(FilePath.ToString()).Skip(4).ToString();

        TextBox1.Text = line.ToString();

但是现在它给出了这个错误:

System.Linq.Enumerable+<SkipIterator>d__30`1[System.String]

如何解决这个问题?

谢谢。

3 个答案:

答案 0 :(得分:2)

我不太确定我理解这个问题,但我认为你在寻找string.Replace

string DoubleSlash(string singleSlash)
{
    return singleSlash.Replace(@"\", @"\\");
}

答案 1 :(得分:1)

反斜杠消失的原因是C#编译器将字符串文字中的斜杠视为特殊的&#34;转义&#34;字符。由于这种处理,反斜杠需要在常规字符串文字中编码为两个斜杠。

C#提供了两种以所需方式插入反斜杠的方法:

  • 使用逐字文字 - 前缀为&#34; at&#34;签名,即@"C:\\yung\\Desktop"
  • 每个斜杠加倍 - 在结果中为每个斜杠添加两个斜杠:C:\\\\yung\\\\Desktop

答案 2 :(得分:1)

好的,我已经设法解决了这个问题,事实证明它没有读任何东西。

这是我最终获得的代码:

这是检索File的路径,使用这个,会给文件路径加倍斜杠,所以不需要替换(@“\”,@“\”)

string FilePath = FileUploadPublicInfo.PostedFile.FileName;

然后读取指定的文件

System.IO.StreamReader file = new System.IO.StreamReader(FilePath);

如果您知道您特别想要哪一行,则会检索第5行

string line = File.ReadLines(FilePath.ToString()).Skip(4).First().ToString();

非常感谢你的帮助......