Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


lista filer av viss typ i en katalog i linux

Postades av 2003-05-16 16:23:46 - Petter Jonsson, i forum linux server, Tråden har 9 Kommentarer och lästs av 1454 personer

Hej

Jag håller på att skiva ett konsollprogram i c++ under linux som använder ncurses gränssnittet. I detta program kan man lista filerna i en katalog på hårddisken. För att lista dessa filer använder jag mig av funktionerna i filen dirent.h. Min kod ser ut ungefär så här:

#include <dirent.h>
.
.
.
DIR *dir_p;
struct dirent *dir_entry_p;

dir_p = opendir(katalognamn );

for(i=0; NULL != (dir_entry_p = readdir(dir_p)); i++) // läs allt innehåll i katalogen
filesInDirectory.push_back(dir_entry_p->d_name); // lägg alla lästa filnamn i en vector
.
.
.

Sedan skriver jag helt enkelt ut alla poster i vektorn på skärmen.

Det jag skulle vilja åstakomma är att jag vill kunna lista vissa typer av av filer i en katalog, exempelvis bara lista de filer som är kataloger, eller bara lista html-filer.

Finns det något enkelt sätt att lösa detta på? Finns det kanske någon annan inkluderingsfil som tillhandahåller hjälpfunktioner för att läsa innehållet i en katalog? Jag är tacksam för all hjälp jag kan få, och jag använder g++ kompilatorn.

mvh Petter




Svara

Sv: lista filer av viss typ i en katalog i linux

Postades av 2003-06-02 22:45:00 - Anders Sjöholm

Så här på rak arm vet jag inte riktigt hur man gör det med opendir m.fl., förutom att kanske gå igenom alla filer i katalogen och kolla extension på dem.

Annars kan du helst sonika använda funktionen system();

Exempelvis såhär:

system("ls *.html"); //Tror det var så

MVH


Svara

Sv: lista filer av viss typ i en katalog i linux

Postades av 2003-06-12 12:13:46 - Petter Jonsson

hmm... ja jag har tänkt på att använda funktionen system() för att ge ett systemkommando, men problemet är att jag vill kunna läsa in filnamnen jag listar till programmet, och där spara dem. Och det går väl inte att göra med system kommandot?


Svara

Sv: lista filer av viss typ i en katalog i linux

Postades av 2003-06-14 17:02:21 - Niklas Jansson

Tror du kan redirecta stdout.

system("ls *.html >fil.txt");

annars borde du väl kunna göra ett urval, genom att titta på filnamnet?


Svara

Sv: lista filer av viss typ i en katalog i linux

Postades av 2003-06-15 17:27:52 - Petter Jonsson

tja... borde ju iofs fungera... även om det känns lite klumpigt att behöva mellanspara resultatet i en textfil... risken är ju att det blir i långsammaste laget... men kommer jag inte på nåt annat får jag prova det


Svara

Sv: lista filer av viss typ i en katalog i linux

Postades av 2003-06-15 18:10:05 - Niklas Jansson

Jo, jag vet... men borde du inte kunna göra en koll på namnet? (såvida du inte har en directory som slutar på .html)

Jag vet inte vad d_name är för sorts sträng, men om det är en vanlig c-sträng (const char *) så borde det väl kunna gå med nånting i stil med:

for(i=0; NULL != (dir_entry_p = readdir(dir_p)); i++){
if(strcmp(dir_entry_p->d_name, ".html") == strlen(dir_entry_p->d_name)-5)
filesInDirectory.push_back(dir_entry_p->d_name);
}

Detta funkar ju iofs ingen koll på om du har en fil som heter typ "a.htmlasd.txt", men min poäng är att du kan göra en ganska enkel test på filnamnet.


Svara

Sv: lista filer av viss typ i en katalog i linux

Postades av 2003-06-16 10:57:48 - Petter Jonsson

ok... tack... det verkar vara en rätt vettig lösning... ska genast testa det =)


Svara

Sv: lista filer av viss typ i en katalog i linux

Postades av 2003-06-16 17:34:20 - Petter Jonsson

ok... nu har jag fått till det så att jag kan lista bara html-filer... men nu skulle jag vilja kunna lista alla kataloger också. Nån som har nån ide om hur man kan kolla ifall en fil är en katalog från c++ ?


Svara

Sv: lista filer av viss typ i en katalog i linux

Postades av 2003-06-16 18:18:57 - Niklas Jansson

Känns lite fult, men du kan väl testa med nånting i stil med

DIR *dir_p*dir_test;
struct dirent *dir_entry_p;

dir_p = opendir(katalognamn );

for(i=0; NULL != (dir_entry_p = readdir(dir_p)); i++){
dir_test=opendir(dir_entry_p);
if(dir_test!=NULL)
filesInDirectory.push_back(dir_entry_p->d_name);
}


Svara

Sv: lista filer av viss typ i en katalog i linux

Postades av 2003-06-16 20:21:12 - Petter Jonsson

ok... nu fungerar det som det ska.. tack för hjälpen!


Svara

Nyligen

  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 869
27 965
271 770
724
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies