Avatar billede mgsj Nybegynder
08. november 2007 - 12:17 Der er 7 kommentarer og
1 løsning

Stier, mapper og rekursiv søgning heri

Hej

Jeg skal finde en bestemt type filer (.tmp) i nogle bestemte foldere (Middle) som skal kopieres til en destinationsfolder.

Mit problem er at det er noget kode som jeg skal refaktorere i Visual Basic (som jeg ikke rigtig kender).

Som det er nu, søges der kun i én bestemt sti, hvor "Middle" folderen er den sidste mappe i stien.

Der er dog kommet flere forskellige "Middle" foldere, og .tmp-filerne kan godt ligge i underfoldere til Middle. F. eks.:

\...\udv\Middle <-heri ligger .tmp filer
\...\udv\Middle\Vims <-heri ligger .tmp filer
\...\udv\Eks\Middle <-heri ligger .tmp filer

Da stien er den samme indtil og med \udv folderen må dette være et godt sted at starte.

Men hvordan implementerer jeg lige en løsning der hedder at jeg vil søge i Middle-foldere (samt underfoldere) efter tmp-filer.

Bemærk, at .tmp filer også findes i Eks folderen, men disse skal ikke med.

Jeg har søgt lidt på nettet og det ser ud til at FileSystemObject skulle kunne hjælpe mig. Men så vidt jeg kan se er det vbscript? Er der noget tilsvarende til VB? Arbejder i VS2005, og den kender i hvert fald ikke noget til FSO :-(

Håber mit problem er beskrevet godt nok. Ellers må I sige til.
Avatar billede tjacob Juniormester
08. november 2007 - 13:22 #1
VS2005 - er det så ikke VB.NET?

Dette er den "klassiske" VB-kategori.

VB.NET ligger her: http://www.eksperten.dk/spm/Programmering/Visual-Basic-NET/
Avatar billede lord_mike Nybegynder
10. november 2007 - 20:01 #2
FileSystemObject (Herefter FSO) er et COM objekt i Windows (Virker til alle sprog herefter).

For at lave noget rekursivt skal du lave en funktion, som looper alle undermapper og filer. For hver undermappe den looper skal den kalde på sig selv med den nye sti.

For alle filer den looper, skal den behandle dem, i dit tilfælde ville jeg lægge stien ind i et array som jeg så looper bagefter.

I .Net ville jeg foreslå at bruge System.IO. Da denne er dels hurtigere, dels nemmere at bruge i VS.

Sig til hvis du skal have et eksempel.
Avatar billede nielle Nybegynder
10. november 2007 - 20:16 #3
http://www.eksperten.dk/spm/804945

mgsj, man må ikke have flere spørgsmål på det samme. Du må derfor hellere lukke et af dem...
Avatar billede mgsj Nybegynder
11. november 2007 - 12:30 #4
Jeg lukker denne tråd, da mit spørgsmål tilsyneladende falder i den forkerte kategori, og man ikke må have mere en ét spørgsmål ad gangen på det samme emne.
Avatar billede mgsj Nybegynder
11. november 2007 - 12:33 #5
lord_mike tak for svaret i øvrigt. Jeg har oprettet en tråd i visual basic.net kategorien i stedet.
Avatar billede nielle Nybegynder
11. november 2007 - 14:04 #6
Kigger du så ikke efter hvad der foregår i den anden tråd? Det er et par dage siden at jeg lagde noget til dig der.
Avatar billede nielle Nybegynder
11. november 2007 - 23:05 #7
I øvrigt er denne tråde altså ikke lukket før at du selv smider et svar og acceptere det. :^)
Avatar billede mgsj Nybegynder
11. november 2007 - 23:51 #8
Hehe ok. Will do.
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
Kurser inden for grundlæggende programmering

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