Ciao,
io lavorerei sempre con collection tipizzate, ossia "List<T>" (quindi di fatto System.Collection.Generics) dove "T" sta per il tipo, e poi la listbox è sicuramente un visualizzatore degli elementi che stai trattando.
Devi cercare di intendere l'aspetto (quindi Win32, o Asp.net , o Palm etc..) come una pura presentazione di qualche cosa che stai gestendo, quindi di fatto eviti di legarti ad una particolare applicazione.
Con qeusta logica, il tuo Service non avrà parte grafica, ma di fatto tratterà le cose allo stesso modo.
Tradotto in codice io farei qualcosa di questo tipo:
List<string> files = new List<string>();
files.AddRange( Directory.GetFiles(...) );
...
tral'altro, se vuoi usare le classi "DirectoryInfo" e "FileInfo" oltre al singolo path del file hai anche una serie di informazioni in più come data di creazione,garndezza etc...il codice è praticamente equivalente:
List<FileInfo> files =new List<FileInfo>();
DirectoryInfo dirInfo = new DirectoryInfo(...);
files.AddRange(dirInfo.GetFiles());
...
Quando hai questa collection in memoria, ti basta darla in pasto alla tua ListBox, o ad un datagrid, piuttosto che ad una DataList di asp.net...non fa differenza, la tua collection è sempre la stessa, cambia la sola visualizzazione (win32, asp.net, wpf, silverlight etc...)
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo