Avatar billede MrJ Praktikant
28. september 2004 - 16:16 Der er 12 kommentarer og
1 løsning

Liste filer i en mappe

Hej

Jeg har brug for et stykke kode der kan liste alle filer i en given mappe.

Det skal være kompatibelt med Borland c++ Builder 6 og Windows

Håber at der er nogen der kan hjælpe

Mvh Effer
Avatar billede arne_v Ekspert
28. september 2004 - 16:21 #1
WIN32_FIND_DATA data;
  HANDLE h = FindFirstFile("C:\\dir\\*.*",&data);
  if(h!=INVALID_HANDLE_VALUE) {
    // data.cFileName indeholder filnavn
    while(FindNextFile(h,&data)) {
        // data.cFileName indeholder filnavn
    }
  }
  FindClose(h);
Avatar billede arne_v Ekspert
28. september 2004 - 16:22 #2
Win32 API d.v.s. kræver include af windows.h og bør virke på alle
Windows compilere
Avatar billede jakobdo Ekspert
28. september 2004 - 18:46 #3
I borland builder kan du også bruge filelist.
(men den ligger under gamle win31 komponenter eller noget i den stil)
Avatar billede MrJ Praktikant
28. september 2004 - 20:08 #4
arne_v >> Det kan godt være at jeg spørger lidt dumt, men hvordan får jeg så filnavnet udskrevet i dit lille stykke kode?
For hverken data, eller h indeholder da filnavnet.

jakobdo>> jeg tror jeg hælder mere til arne_v's løsning, for jeg skal nemlig rename hver fil som den lister, og det kan jeg ikke lige se hvordan jeg skulle gøre med det komponent du beskriver da den ikke indeholder en løkke hvor den finder en fil ad gangen
Avatar billede arne_v Ekspert
28. september 2004 - 20:09 #5
Som jeg skriver så indeholder data.cFileName filnavnet (data er en struct !).
Avatar billede jakobdo Ekspert
29. september 2004 - 08:25 #6
Arne_V er vel også den mest "rigtige" løsning!
Men i Borland Builder har du komponenten:
FileListBox (under fanebladet Win3.1)
Du kan løbe et helt dir igennem med denne komponent! FileListBox->Count() osv...

For at rename, kan du bruge:
RenameFile(FileListBox->FileName,FileListBox->FileName + ".bak");
Avatar billede MrJ Praktikant
29. september 2004 - 09:12 #7
arne_v >> Ej ok. Jeg er da godt nok blind.
Jeg overså fuldstændig dine kommentarer i koden (jeg er søn af en C++ compiler... eller sådan noget :)

jakobdo >> jeg kigger lige på din kode også, men jeg tror nu at jeg bedre kan lide arne_v's løsning.
Avatar billede MrJ Praktikant
29. september 2004 - 09:20 #8
arne_v >> det virker (selvfølgelig). Læg et svar så får du nogle point.

jakobdo >> det kan være at jeg får brug for "dit" komponent på et andet tidspunkt, så hvis du også lægger et svar, så får du også lidt point
Avatar billede jakobdo Ekspert
29. september 2004 - 09:29 #9
Giv du bare pointene til Arne_V, han har brug for dem! Han har "kun": 262.536 point
Avatar billede MrJ Praktikant
29. september 2004 - 09:37 #10
heh, det er jo rigtigt :)
Avatar billede arne_v Ekspert
29. september 2004 - 09:46 #11
svar
Avatar billede arne_v Ekspert
29. september 2004 - 09:46 #12
Faktisk 278.128 (point tatistik viser ikke point tjent på artikler).
Avatar billede jakobdo Ekspert
29. september 2004 - 09:50 #13
Ok, min fejl! :o)
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