Список папок и вложенных файлов - C#

Узнай цену своей работы

Формулировка задачи:

имеется одна корневая папка, в ней список папок, имя каждой папки это дата, например 19.11.2016. В каждой папке имеется список файлов. В дальнейшем нужно будет это занести в таблицу(html) в виде дата создания-имя. Делаю так
string[] p = Directory.GetDirectories(@"D:\test");
            string[] file;
            for (int i = 0; i < p.Length; i++)
            {
                listBox1.Items.Add(p[i]);
                file = Directory.GetFiles(p[i]);
                for (int j = 0; j < file.Length; j++)
                {
                    listBox1.Items.Add(file[j]);
                }
            }
Возможно есть более правильный способ это сделать, или и этот сгодится?

Решение задачи: «Список папок и вложенных файлов»

textual
Листинг программы
using System;
using System.IO;
using System.Windows.Forms;
using System.Threading.Tasks;
 
namespace ConsoleApplication24 {
 
    class Program {
 
        static void Main( string[] args ) {
 
            ListBox listBox1 = new ListBox();
 
            ReadFilesAsync( listBox1 ); // вызываем метод асинхронно
 
            Console.WriteLine( "DONE" ); // будет выведено первым или одним из первых, хоть метод ReadFilesAsync ещё не закончил работу
 
            Console.ReadKey();
        }
 
        static async void ReadFilesAsync( ListBox listBox1 ) {
            await Task.Run( () => ReadFiles( listBox1 ) ); // вызывает синхронный метод ReadFiles через Task
        }
 
        // привычный синхронный метод, но исполняется в другом потоке, если память не изменяет
        static void ReadFiles( ListBox listBox1 ) {
            string[] p = Directory.GetDirectories( @"D:\test" ); // @"D:\Музика"; ой, это я делал тест
            string[] file;
            for( int i = 0; i < p.Length; i++ ) {
                listBox1.Items.Add( p[ i ] );
                file = Directory.GetFiles( p[ i ] );
                for( int j = 0; j < file.Length; j++ ) {
                     listBox1.Items.Add( file[ j ] );
                    Console.WriteLine( "...ADDED: " + file[ j ] ); // тест, вывод
                }
            }
        }
 
    }
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.467 из 5
Похожие ответы