mohammed hassan el taifa نشر 22 مايو 2016 أرسل تقرير نشر 22 مايو 2016 أريد المساعدة في هذا الكود الفكرة هي الحصول على جميع أسماء الملفات الموجودة في فولدر معين بالإضافة إلى جميع الفولدرات الداخلية و ارسالها الى ملف اكسل أحاول عمل هذا من خلال datagridview لكن عند تشغيل البرنامج يعطى الرسالة الآتية: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index و هذا هو الكود المستخدم private void button1_Click(object sender, EventArgs e) { /* get all files name without path*/ string path; if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { path = folderBrowserDialog1.SelectedPath; string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories); int i = 0; foreach (string file in files) { //listBox1.Items.Add(Path.GetFileName(file)); dataGridView1.Rows[0].Cells[i].Value = file; i++; } } } test.rar اقتباس
0 سعيد نشر 23 مايو 2016 أرسل تقرير نشر 23 مايو 2016 لم تذكر لغة البرمجة التي تستخدمها. ولكن يبدو أنّها سي شارب C#. أتصور أنّ مشكلتك في هذا السطر: dataGridView1.Rows[0].Cells[i].Value = file; الأداة datagridview التي تستخدمها لا تمتلك أيّ سطر بعد. علمًا أنّك تحاول إضافة الملفات إلى العمدة وليس إلى الأسطر. أتصوّر أنّ الكود التالي سيفي بالغرض: private void button1_Click(object sender, EventArgs e) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { string path = folderBrowserDialog1.SelectedPath; string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories); //reset all columns. dataGridView1.Columns.Clear(); //create a column first. dataGridView1.Columns.Add("colFile", "الملف"); foreach (string file in files) { dataGridView1.Rows.Add(file); } } } ينشئ الكود السابق عمودًا ضمن dataGridView1 ثمّ يعمل على إضافة الملفات التي حصل عليها على شكل أسطر ضمن هذا العمود. لاحظ أنّني قد حذفت جميع الأعمدة التي قد تكون قد أنشأتها من قبل باستخدام العبارة: dataGridView1.Columns.Clear(); اقتباس
0 mohammed hassan el taifa نشر 26 مايو 2016 الكاتب أرسل تقرير نشر 26 مايو 2016 جزاكم الله خيرا. فعلا هى لغه c# . شكرا على الرد فعلا استفدت منه . فلكم جزيل الشكر اقتباس
السؤال
mohammed hassan el taifa
أريد المساعدة في هذا الكود
الفكرة هي الحصول على جميع أسماء الملفات الموجودة في فولدر معين بالإضافة إلى جميع الفولدرات الداخلية و ارسالها الى ملف اكسل
أحاول عمل هذا من خلال datagridview لكن عند تشغيل البرنامج يعطى الرسالة الآتية:
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
و هذا هو الكود المستخدم
private void button1_Click(object sender, EventArgs e) { /* get all files name without path*/ string path; if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { path = folderBrowserDialog1.SelectedPath; string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories); int i = 0; foreach (string file in files) { //listBox1.Items.Add(Path.GetFileName(file)); dataGridView1.Rows[0].Cells[i].Value = file; i++; } } }
test.rar
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.