C# 无法将类型 'string' 隐式转换为 'System.IO.StreamReader

标签 c# unicode stream

我想做的是打开目录中的每个文本文件,逐行读取它,如果它与特定内容匹配,则执行正则表达式并将其输出到结果中。出于某种原因,我的文本文件最终变成了 unicode 格式......,不确定不知道为什么。所以我能够解决这个问题,但我无法解决我遇到的流阅读器问题。如果有人可以建议一种解决此问题的方法,那就太好了,如果这种方法是转换这些文本文件,那就这样吧。

代码如下:

        public void doSomeWork()
    {
        DirectoryInfo dinfo = new DirectoryInfo(@"C:\Documents and Settings\123");
        FileInfo[] Files = dinfo.GetFiles("*.txt");
        foreach (FileInfo filex in Files)
        {
            string line;
            StreamReader sr = File.ReadAllText(filex.FullName, Encoding.Unicode);
            StreamWriter sra = File.AppendText(@"C:\sharename.txt");
            int counter = 0;
            while((line = sr.ReadLine()) != null)
            {
                string matchingcontants = "Share";
                if (line.Contains(matchingcontants))
                {
                    string s = sr.ReadLine();
                    string sharename = Regex.Match(line, @"\+(\S*)(.)(.*)(.)").Groups[3].Value;
                    sra.WriteLine(sharename);
                }
                counter++;
            }
            sr.Close();
            sra.Close();  
        }

最佳答案

File.ReadAllText 实际上是将整个文件读入一个字符串。请尝试使用 File.OpenRead

关于C# 无法将类型 'string' 隐式转换为 'System.IO.StreamReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2252168/

相关文章:

c# - 如何使用Newtonsoft Deserialize C#反序列化JSON

c# - Visual Studio 在 Rebuild 上从依赖项项目复制 "Content"文件,但在 Build 上不复制

c# - string.Split C# 将文本保留在定界符之外

Javascript:非 unicode 字符代码到 unicode 字符?

Javascript 匹配并替换为 unicode

Java,将文件流转换为随机访问文件

c# - 来自 Stream : Bug? 的位图

javascript - 运行 C# 代码后禁用 aspx 页面中的按钮

Python 统一码编码错误 : 'ascii' codec can't encode character in position 0: ordinal not in range(128)

android - VideoView 流加载缓冲不足