簡體   English   中英

C#無法將類型'string'隱式轉換為'System.IO.StreamReader

[英]C# Cannot implicitly convert type 'string' to 'System.IO.StreamReader

我想做的是打開目錄中的每個文本文件,逐行讀取,如果它與特定內容匹配,則進行正則表達式並將其輸出到結果中。 由於某種原因,我的文本文件最終變成了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

File.ReadAllText返回一個字符串,其中包含文件中的所有文本。

嘗試更改:

StreamReader sr = File.ReadAllText(filex.FullName, Encoding.Unicode);

string[] lines = File.ReadAllLines(filex.FullName, Encoding.Unicode);

並改變

while((line = sr.ReadLine()) != null)

foreach(string line in lines)

並刪除以下內容:

sr.Close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM