السلام عليكم
عندي استفسار بسيط عن كيفية إحضار كل الملفات الموجودة في مجلد ما وتخزينها داخل مصفوفة أو Listbox أو أي شيء مشابه
وشكرا للفريق العربي 2000
السلام عليكم
عندي استفسار بسيط عن كيفية إحضار كل الملفات الموجودة في مجلد ما وتخزينها داخل مصفوفة أو Listbox أو أي شيء مشابه
وشكرا للفريق العربي 2000
يا باشا فيه control اسمه FolderBrowserDialog بيعمل browse لل folders
وعليكم السلام ورحمة الله وبركاته.
يمكنك استخدام FolderBrowserDialog الذي أشار اليه الأخ العزيز C#Please لكي تتيح للمستخدم أن يختار أو يحدد عنوان مجلد معين.
بعد حصولك على عنوان المجلد الذي اختاره المستخدم أو الذي حددته أنت في الكود , يمكنك أن تستخدمه في انشاء DirectoryInfo الذي به تستطيع أن تحصل على بعض المعلومات الخاصه بذلك المجلد , مثل معرفة أسماء المجلدات الموجوده فيه وأسماء الملفات و هل هو موجود أصلا أم لا و ... الخ.
هذا مثال بسيط يفعل ما تريد :
[CODE]System.IO.DirectoryInfo yourDirInfo = new System.IO.DirectoryInfo(@"C:\Windows\");
foreach(System.IO.FileInfo yourFInfo in yourDirInfo.GetFiles())
{
yourListBox.Items.Add(yourFInfo.FullName);
}عندك كما رأيت GetFiles ترجع مصفوفه من FileInfo بالملفات الموجوده في المجلد , ولكن في الحقيقه يمكن تبسيط الكود أكثر من ذلك اذا كنت تريد فقط معرفة أسماء الملفات لوضعها في ListBox مثلا , ولا يهمك معرفة امتدادها ولا حجمها ولا الـ Attributes الخاص بها هل هى ReadOnly أم الخ. فـ DirectoryInfo و FileInfo لا ينبغي استخدامهم الا في حالة الحاجه الى معرفة معلومات أكبر , عن المجلدات أو الملفات التي نتعامل معها.
ولذلك تم توفير Directory و File وهما أخف على الذاكره والدوال فيهما كلها static وتكاد تتشابه تماما مع تلك الموجوده في DirectoryInfo و FileInfo الا أنها بالطبع تختلف في الـ Parameters وبعض الأشكال.
فيمكنك استخدام الكود ::
string[] myFiles = System.IO.Directory.GetFiles(@"C:\Windows\"); yourListBox.DataSource = myFiles;
GetFiles هنا ترجع مصفوفه من strings وليس مصفوفه من FileInfo كما كان في الكود السابق.
على كل حال يوجد أكثر من طريقه ,, وعلى حسب طبيعة المعلومات التي تريد معرفتها يمكنك اختيار الوسيله الأمثل على حسب ما ترى.
هذا الموضوع مغلق.