【问题标题】:Adding a character into a string after a specific character在特定字符之后将字符添加到字符串中
【发布时间】:2017-08-06 23:01:58
【问题描述】:

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

C:\\yung\\Desktop

返回 但是,fileUpload get 返回的字符串是 2.

C:\yung\Desktop

阅读 cmets 后,我有以下代码:

        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]

如何解决这个问题?

谢谢。

【问题讨论】:

标签: c#


【解决方案1】:

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

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

【讨论】:

  • @LanYungLee 你试过了,而且..?什么问题?为什么它不回答你的问题?
  • 我按错了,我的意思是还有一个问题。
  • 顺便说一句,我添加的代码不需要用“\\”替换“\”
【解决方案2】:

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

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

  • 使用逐字文字 - 以“at”符号作为前缀,即@"C:\\yung\\Desktop",或
  • 双斜线 - 在结果中为每个斜线添加两个斜线:C:\\\\yung\\\\Desktop

【讨论】:

    【解决方案3】:

    好的,我已经设法解决了这个问题,结果它没有读取任何内容。

    这是我最终得到的代码:

    这是检索文件的路径,使用这个,会给文件路径双斜杠,所以不需要Replace(@"\",@"\")

    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();
    

    非常感谢您的帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 2016-04-27
      相关资源
      最近更新 更多