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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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(); اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 mohammed hassan el taifa نشر 26 مايو 2016 الكاتب أرسل تقرير مشاركة نشر 26 مايو 2016 جزاكم الله خيرا. فعلا هى لغه c# . شكرا على الرد فعلا استفدت منه . فلكم جزيل الشكر اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
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
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.