Avatar billede califfo Nybegynder
17. januar 2006 - 09:51 Der er 18 kommentarer og
1 løsning

Get FileName

Hej gutter

Jeg skal bruge noget kode til at hente filnavnene fra en bestemt mappe. Jeg vil også gerne udelade extension (.et-eller-andet) fra disse. Jeg har læst mig lidt frem til at jeg skal bruge noget i stil med:
___
        public string[] GetDeviceList
        {
            get;
        }
___

Jeg kan godt se at der mangler noget, men jeg er kun nået hertil indtil videre.

For lige at udfordre lidt, er det også meningen at jeg skal vise resultaterne som Items i en combobox. Er der nogen af jer glade, tastatur-tæskere der kan svare på dette?
Avatar billede mikkel_sommer Nybegynder
17. januar 2006 - 10:06 #1
Hvad med noget i stil med:

Using System.IO;

string[] filer = Directory.GetFiles("C:\\sti til filerne");
ArrayList filnavne = new ArrayList();

for(int i = 0; i < filer.Length; i++)
{
string fil = filer[i].Substring(filer[i].LastIndexOf("\\") + 1, filer[i].LastIndexOf(".") - filer[i].LastIndexOf("\\") - 1);
filnavne.Add(fil);
}

comboBox1.DataSource = filnavne;
Avatar billede califfo Nybegynder
17. januar 2006 - 10:18 #2
Hmmm,... Den forventer en "get" eller "set" accessor.
Avatar billede califfo Nybegynder
17. januar 2006 - 10:19 #3
Altså til:
___
string[] filer = Directory.GetFiles("C:\\sti til filerne");
___
Avatar billede mikkel_sommer Nybegynder
17. januar 2006 - 10:41 #4
Får du en fejl når du kører den?
Avatar billede califfo Nybegynder
17. januar 2006 - 10:43 #5
Jep. Den siger:

"Error    1    A get or set accessor expected    ... "
Avatar billede mikkel_sommer Nybegynder
17. januar 2006 - 10:43 #6
i hvilken linie?
Avatar billede califfo Nybegynder
17. januar 2006 - 10:45 #7
Her er kodestumpen:
___

        public void GetDeviceList
        {
            string[] filer = Directory.GetFiles(".\\Files");
            ArrayList filnavne = new ArrayList();

            for(int i = 0; i < filer.Length; i++)
            {
                string fil = filer[i].Substring(filer[i].LastIndexOf("\\") + 1, filer[i].LastIndexOf(".") - filer[i].LastIndexOf("\\") - 1);
                filnavne.Add(fil);
            }
        }
___

...Og ja. Jeg har husket "Using System.IO;"
Avatar billede mikkel_sommer Nybegynder
17. januar 2006 - 10:46 #8
Det er fordi du har den inden i en property det var ikke meningen.
Prøv at lave en void metode hvor du smider den i.
Avatar billede califfo Nybegynder
17. januar 2006 - 10:50 #9
Øhm,... Jeg er ikke helt med.
Avatar billede mikkel_sommer Nybegynder
17. januar 2006 - 10:50 #10
hvis du vil have den i en property kan du prøve noget i retning af det her:

public ArrayList Filnavne
{
    get
    {
        string[] filer = Directory.GetFiles(".\\Files");
        ArrayList filnavne = new ArrayList();

        for(int i = 0; i < filer.Length; i++)
        {
            string fil = filer[i].Substring(filer[i].LastIndexOf("\\") + 1, filer[i].LastIndexOf(".") - filer[i].LastIndexOf("\\") - 1);
            filnavne.Add(fil);
        }
        return filnavne;
    }
}

ComboBox1.DataSource = Filnavne;
Avatar billede mikkel_sommer Nybegynder
17. januar 2006 - 10:52 #11
ellers skal du bare lave en metode som her:

public void hentFiler()
            {
                string[] filer = Directory.GetFiles("C:\\Documents and Settings\\mwmso\\My Documents\\Diverse\\Medarbejderinfo\\2005");
                ArrayList filnavne = new ArrayList();

                for(int i = 0; i < filer.Length; i++)
                {
                    string fil = filer[i].Substring(filer[i].LastIndexOf("\\") + 1, filer[i].LastIndexOf(".") - filer[i].LastIndexOf("\\") - 1);
                    filnavne.Add(fil);
                }
                comboBox1.DataSource = filnavne;
            }
Avatar billede califfo Nybegynder
17. januar 2006 - 11:00 #12
Tester på livet løs,...

...Vender tilbage om lidt.
Avatar billede mikkel_sommer Nybegynder
17. januar 2006 - 11:01 #13
Bare i orden :-)
Avatar billede mikkel_sommer Nybegynder
17. januar 2006 - 11:06 #14
Ellers, hvis du har problemer med at få det til at virke så paste klassen ind...
Avatar billede arne_v Ekspert
17. januar 2006 - 11:43 #15
svarer

string fil = filer[i].Substring(filer[i].LastIndexOf("\\") + 1, filer[i].LastIndexOf(".") - filer[i].LastIndexOf("\\") - 1);

ikke til

string fil = Path.GetFileNameWithoutExtension(filer[i]);

?
Avatar billede califfo Nybegynder
17. januar 2006 - 11:52 #16
...Fik en meget underlig "Warning" som ikke rigtig havde noget med den nye kode at gøre. Jeg har lige brugt tid på at finde ud af hvorfor den opstod og ligpludselig forsvandt den. Koden virker perfekt nu. Tusind tak. Bare smid et svar, så er pointene retmæssigt dine.
Avatar billede califfo Nybegynder
17. januar 2006 - 11:53 #17
"ligpludselig" = "lige pludselig"

Flot tastaturspasser!!!
Avatar billede califfo Nybegynder
17. januar 2006 - 11:53 #18
...Ups. Så ikke dit indlæg Arne. Pointene er selvfølgelig til mikkel_sommmer.
Avatar billede mikkel_sommer Nybegynder
17. januar 2006 - 12:14 #19
Ja sådan kan det gå, men godt at du fandt den ;-)
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