PDA

View Full Version : سوال: خطای این کد در کجاست ؟



mariwan_blue
یک شنبه 28 اردیبهشت 1393, 21:14 عصر
با سلام و عرض ادب
دوستان عزیز من میخوام دیسک D رو با کل فولدر و فایلهاش رو توی یه لیست باکس اضافه کنم ولی نمیدونم چرا نمیشه
میشه بگید مشکل از کجاست

private void button1_Click(object sender, EventArgs e)
{
List<string> st = new List<string>();
st.Add("D:\\");
for (int i = 0; i < st.Count; i++)
{

string [] ase = Directory.GetDirectories(st[i]);
st.AddRange(ase);
string [] m = Directory.GetFiles(st[i]);


for (int j = 0; j < ase.Length; j++)
{
StreamReader r = new StreamReader(m[j]);
while (!r.EndOfStream)
{
string s = r.ReadLine();
listBox1.Items.Add(s);
}
}

}
}

aliagamon
یک شنبه 28 اردیبهشت 1393, 22:14 عصر
از این استفاده کنین مشکل حل میشه (یعنی همین 4 تا خط کاره اون دوتا حلقه رو میکنه)
string[] m = Directory.GetFiles(st[i],"*.*",SearchOption.AllDirectories); st.AddRange(m);
string[] ase = Directory.GetDirectories(st[i], "**", SearchOption.AllDirectories);
st.AddRange(ase);

mariwan_blue
دوشنبه 29 اردیبهشت 1393, 01:39 صبح
یعنی حلقه ها رو پاک کنم ؟
بعدش بعضی فولدرها هستند که مشکل سازن و ارور رو بخاطر همون فولدرها میده
اونهارو چکار کنم

aliagamon
دوشنبه 29 اردیبهشت 1393, 10:39 صبح
یعنی یه همچین چیزی بنویسین:
List<string> st = new List<string>(); st.Add("D:\\");

string[] m = Directory.GetFiles(st[0],"*.*",SearchOption.AllDirectories);
st.AddRange(m);
string[] ase = Directory.GetDirectories(st[0], "**", SearchOption.AllDirectories);
st.AddRange(ase);
احتمالا مشکل permission هست ...:لبخند: معمولا run as administrator جواب میده