Avatar billede Slettet bruger
06. januar 2007 - 20:29 Der er 4 kommentarer og
1 løsning

Path sortering

Jeg har et array med alle mapper og undermapper samt filer for en hvis sti. Her vil jeg gerne kunne få mapper og filer ud det tilhører en bestemt mappe..

Fx.

C:\TestMappe\Film\Syg-ko-PrOn\film1.avi
C:\TestMappe\Film\Syg-ko-PrOn\film2.avi
C:\TestMappe\Film\Syg-ko-PrOn\film3.avi
C:\TestMappe\Film\Syg-ko-PrOn\Tralala\film34.avi
C:\TestMappe\Film\Syg-ko-PrOn\Tralala\film67.avi
C:\TestMappe\Film\Syg-ko-PrOn\Tralala\BestOf\pic1.avi
C:\TestMappe\Film\Syg-ko-PrOn\Tralala\BestOf\pic2.avi


Ved så at angive: C:\TestMappe\Film\C:\TestMappe\Film\Syg-ko-PrOn

Får jeg KUN de filer og mapper der ligger under 'Syg-ko-PrOn' tilbage, og ikke filer og mapper under i de underliggende mapper.

Kan i følge med?  Det er fordi jeg har lavet dette som et index array, og når en bruger efterspørger filer i fx 'Syg-ko-PrOn' får han kun de filer og mapper retur som ligger i den mappe

Hvordan sorterer jeg det ud`?
Avatar billede aaberg Nybegynder
06. januar 2007 - 21:37 #1
Jeg forstår ikke hvad dit problem er. Prøver du at finde alle filer i en mappe og dens undermapper, eller? Prøv at omformulere dit spørgsmål lidt.
Avatar billede Slettet bruger
06. januar 2007 - 21:39 #2
Jeg skal finde alle filer FOR en bestemt sti.. og ikke filer i undermapper
Avatar billede aaberg Nybegynder
06. januar 2007 - 22:13 #3
Her er en stump kode som gør jobben.

private string[] FindFilesInDirectory(string dir)
        {
            List<string> matchedFiles = new List<string>();
            string[] allFiles = new string[]{
                @"C:\TestMappe\Film\Syg-ko-PrOn\film1.avi",
                @"C:\TestMappe\Film\Syg-ko-PrOn\film2.avi",
                @"C:\TestMappe\Film\Syg-ko-PrOn\film3.avi",
                @"C:\TestMappe\Film\Syg-ko-PrOn\Tralala\film34.avi",
                @"C:\TestMappe\Film\Syg-ko-PrOn\Tralala\film67.avi",
                @"C:\TestMappe\Film\Syg-ko-PrOn\Tralala\BestOf\pic1.avi",
                @"C:\TestMappe\Film\Syg-ko-PrOn\Tralala\BestOf\pic2.avi"};

            foreach (string currentFile in allFiles)
            {
                string tmp = currentFile.Replace(dir, string.Empty);
                if (tmp.IndexOf("\\") == -1)
                    matchedFiles.Add(currentFile);
            }

            return matchedFiles.ToArray();
        }

Hvis du bruger noget ældre en dotnet 2.0, kan du ikke bruge List<T> klassen. Der kan du i stedet bruge en ArrayList. allFiles arrayet skal selvfølgelig skiftes ud med dit array som indeholder alle filer.
Avatar billede Slettet bruger
07. januar 2007 - 12:56 #4
works like a charm, thx, smid et svar
Avatar billede aaberg Nybegynder
07. januar 2007 - 12:57 #5
Svar :-)
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