2016-04-07 20 views
0

StreamReader ile garip bir sorunum var. Programım bir konsol programı ve tüm * .cs dosyası için bir dizin yapısı ile döngü yapmalıdır. Ardından, belirli bir kelimenin dosyada olup olmadığını kontrol edin ve dosya yolunu çıktıya yazın.StreamReader.ReadToEnd dosya yolunu döndürür

using (StringReader sr = new StringReader(fPath)) 
{ 
    string content = sr.ReadLine(); // sr.ReadToEnd(); 
    Debug.WriteLine(content); 
    int found = content.IndexOf(p); 
    if (found != -1) 
    { 
     result = true; 
    } 
} 

Bu, belirli bir dosyadaki çalışmayı bulmak için kullandığım koddur. Sorun, sr.ReadToEnd (ancak ayrıca ReadLine) dosyasının içeriğinin değil fPath değerini döndürmesidir!

Dosya mevcut ve kilitli değil. fpath ise

: "C: \ TEMP \ DC_LV1_LaMine_Mk2Plus_134_ix220_20160404 \ Alarm.Script.cs"

içerik olacaktır: "C: \ TEMP \ DC_LV1_LaMine_Mk2Plus_134_ix220_20160404 \ Alarm.Script.cs"

Yanlış yaptığımı gören var mı?

cevap

4

Sen Dize yerine Akış Okuyucu

StringReader ait Reader kullanan bir dize

StramReader dan okuyan bir TextReader uygulayan bir bayt akışından karakterleri okuyan bir TextReader uygular Belirli bir kodlama

Bir dosyadan okumak isterseniz dosya küçük olduğunu ve daha kapsamlı bir bakış için bir kez

de hepsini okumak için yeterli kaynak varsa bu constructor StreamReader

için de File.ReadAllText kullanabilirsiniz kullanmak, bilmiyorum makale this

+0

bkz kodu kaç kez okudum ve hala bunu özledim biliyorum! – Andis59

+0

Bazen bakmak için yeni bir çift göze ihtiyacınız var. Bu yüzden kod incelemesi yaygın bir uygulamadır! – ironstone13

+0

@ Andis59, size yardımcı olursa lütfen cevap olarak işaretleyin. Şerefe! – ironstone13

İlgili konular