![](/img/trans.png)
[英]Cannot implicitly convert type 'System.IO.Stream' to '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.