Avatar billede scarface335 Nybegynder
20. november 2007 - 14:48 Der er 12 kommentarer og
1 løsning

Læs alle filnavne fra en given sti ind i et array eller en liste

Hvis jeg har en given Sti(eks C:\TEMP)

Hvordan finder jeg så alle filerne deri og får læst deres navne ind i en liste eller et array.
Avatar billede sherlock Nybegynder
20. november 2007 - 14:58 #1
using System;
using System.IO;
namespace Test
{


class Program
{

static void Main()
{
    Console.WriteLine(Directory.GetFiles("c:\\temp")[0]);
}

}

}
Avatar billede sherlock Nybegynder
20. november 2007 - 14:58 #2
Udskriver den første.
Avatar billede scarface335 Nybegynder
20. november 2007 - 15:00 #3
Jeg skal have læst alle ind i et array
Avatar billede scarface335 Nybegynder
20. november 2007 - 15:01 #4
Array Files[] = Directory.GetFiles(@"c:\Temp");

Kan det gøres sådan ?
Avatar billede lasserasch Juniormester
20. november 2007 - 15:17 #5
Ikke helt, men næsten.

Gør det sådan her :

----
 
            int i = 0;
            String[] Files = System.IO.Directory.GetFiles("c:\\");
            while (i < Files.Count())
            {
                MessageBox.Show(Files[i].ToString());
                i++;
            }
----

/Lasse
Avatar billede nielle Nybegynder
20. november 2007 - 16:04 #6
Hvorfor et array, hvorfor ikke bare en List<string>?

Den kan man add'e til efterhånde som man lister filerne (dvs. at man ikke behøver at kende antallet først). List<...> kan også fungere som en "mellemstation" da den har en metode .ToArray() som konvertere til et array.
Avatar billede nielle Nybegynder
20. november 2007 - 16:08 #7
F.eks. sådan:

DirectoryInfo di = new DirectoryInfo(@"C:\TEMP");

List<string> fileList = ne List<string>();
foreach (FileInfo fi in di.GetFiles())
{
    fileList.Add(fi.Name);
    // ... eller: fileList.Add(fi.FullName);
}

Man kan så arbejde direlte med fileList eller man kan konvertere denne til string[] med:

string[] fileArr = fileList.ToArray();
Avatar billede nielle Nybegynder
20. november 2007 - 16:08 #8
ne => new
Avatar billede lasserasch Juniormester
20. november 2007 - 17:56 #9
Det kan man selvfølgelig også.

Er vel lidt afhængig af hvad man skal. Og så er det jo nok også lidt en smagssag....
Jeg kan personligt godt lide at arbejde med array's...

/Lasse
Avatar billede hmortensen Nybegynder
20. november 2007 - 21:14 #10
Og et andet eksempel med List:
List<string> files = new List<string>(Directory.GetFiles(@"c:\Temp"));
Avatar billede sherlock Nybegynder
20. november 2007 - 23:45 #11
Directory.GetFiles("c:\\temp") er allerede et String[].

Hvad skal du med dem i en lokal variabel?
Det betyder jo noget for hvordan de skal opbevares. Hvis de da skal ?
Avatar billede scarface335 Nybegynder
21. november 2007 - 09:54 #12
Lasse kan du ikke smide et svar så du kan få dine point.
Avatar billede lasserasch Juniormester
21. november 2007 - 10:53 #13
;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester