Список папок и вложенных файлов - 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 ] ); // тест, вывод } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д