Filhantering i C++?
Filhantering i C++?
Ofta när man gör program för PC vill man kunna läsa flera filer (batch) och utföra samma sak med t.ex. alla filer med en viss filändelse i en viss mapp.... jag undrar om det finns bra funktioner att enkelt läsa alla filer ur angiven mapp.... kanske även hur man hittar undermappar osv... Lite filhantering med andra ord. Jag är inte ute efter några färdiga grafiska GUI eller så , utan bara funktioner som returnerar filnamn eller hur det nu kan tänkas fungera. Hur gör jag? Finns det nån bra tutorial på området med små exempelsnuttar?
De ska gärna fungera både i Windows och Linux-miljö.
De ska gärna fungera både i Windows och Linux-miljö.
Re: Filhantering i C++?
Funktionerna du behöver heter opendir / readdir / closedir.
Här finns ett exempel: http://en.wikipedia.org/wiki/Readdir
Här finns ett exempel: http://en.wikipedia.org/wiki/Readdir
Re: Filhantering i C++?
Tack för tipset. hmmm.. "C POSIX library". Googlade lite och det verkar som om det bara fungerar i UNIX/Linux? Eller har jag fel?
Sedan måste det väl finnas en uppsjö andra funktioner för att hitta i ett OS.
byta mapp t.ex om man vill använda relativa sökvägar. Finns det "självklara" eller grundläggande bibliotek i C++ som gör sådana grundläggande saker, eller finns det en mängd olika mer eller mindre bra bibliotek att välja bland så att alla programmerare har sina egna favoriter, eller hur är det uppbyggt? Som sagt, gärna något som funkar lika i Linux och Windows?
Sedan måste det väl finnas en uppsjö andra funktioner för att hitta i ett OS.
byta mapp t.ex om man vill använda relativa sökvägar. Finns det "självklara" eller grundläggande bibliotek i C++ som gör sådana grundläggande saker, eller finns det en mängd olika mer eller mindre bra bibliotek att välja bland så att alla programmerare har sina egna favoriter, eller hur är det uppbyggt? Som sagt, gärna något som funkar lika i Linux och Windows?
Re: Filhantering i C++?
Men det kanske är allmänt att man inte brukar göra programvara som funkar i olika OS, utan man måste välja? Så verkar det ju vara i stor utsträckning när det gäller att göra grafiska interface (fast det finns flera som går att köra i båda systemen, som FLTK och GTK)?
I så fall gäller det att koncentrera sig på vilket OS man vill lära sig programmera i. Och tyvärr måste det nog bli Windows för min del, eftersom jag vill att de flesta ska kunna köra mina program , och de flesta har just Windows.
I windows verkar det finnas något som heter "FindFirstFile(...)", etc.. kanske är det jag får titta närmare på?
verkar vara detta jag är ute efter i så fall: MSDN Library - Local File Systems
* Listing the Files in a Directory
* Changing the Current Directory
* Moving Directories
* Using File Management ...
I så fall gäller det att koncentrera sig på vilket OS man vill lära sig programmera i. Och tyvärr måste det nog bli Windows för min del, eftersom jag vill att de flesta ska kunna köra mina program , och de flesta har just Windows.
I windows verkar det finnas något som heter "FindFirstFile(...)", etc.. kanske är det jag får titta närmare på?
verkar vara detta jag är ute efter i så fall: MSDN Library - Local File Systems
* Listing the Files in a Directory
* Changing the Current Directory
* Moving Directories
* Using File Management ...
Re: Filhantering i C++?
Om det är C++ du vill använda så kan du använda Nokias QT bibliotek så får du på köpet en väldigt lättanvänd grafisk miljö och massa annat som är körbart på de flesta plattformar.
Det finns filhantering i biblioteket också..
Varför inte välja Java om du vill kunna köra programmen på alla plattformar?
Det finns filhantering i biblioteket också..
Varför inte välja Java om du vill kunna köra programmen på alla plattformar?
Re: Filhantering i C++?
Jag påbörjade en gång i tiden en bok om ANSI-C i wikibooks, orkade väl inte göra det klart, men jag kom rätt långt.
http://sv.wikibooks.org/wiki/Programmering_i_ANSI-C
Allt som fungerar i ANSI-C fungerar också i C++ (men inte alltid tvärt om) så där kan du nog hitta en del nyttig information.
la till parentes
http://sv.wikibooks.org/wiki/Programmering_i_ANSI-C
Allt som fungerar i ANSI-C fungerar också i C++ (men inte alltid tvärt om) så där kan du nog hitta en del nyttig information.
la till parentes
Senast redigerad av Kubbuth 31 mars 2011, 22:32:51, redigerad totalt 1 gång.
Re: Filhantering i C++?
Det finns lite här:
http://www.informit.com/guides/content. ... seqNum=245
Sedan kan man alltid använda
#include <stdlib.h>
int system(const char *command);
Men då är man beroende av ett skal, och det kan vara olika i olika opertarativsystem.
http://www.informit.com/guides/content. ... seqNum=245
Sedan kan man alltid använda
#include <stdlib.h>
int system(const char *command);
Men då är man beroende av ett skal, och det kan vara olika i olika opertarativsystem.
Re: Filhantering i C++?
Om du vill att samma kod skall fungera på fler platformar kan jag rekommendera Boosts filsystemsbibliotek: http://www.boost.org/doc/libs/1_46_1/li ... /index.htm
Här finns en snabbgenomgång hur du använder det: http://www.boost.org/doc/libs/1_46_1/li ... orial.html
Här finns en snabbgenomgång hur du använder det: http://www.boost.org/doc/libs/1_46_1/li ... orial.html
Re: Filhantering i C++?
Det känns lite som en miss i frågeställningen.
I de flesta moderna språk kan du i princip inte göra nånting som har med I/O att göra, allt sånt hanteras av funktionsbibliotek.
Många saker som man tycker "ingår" i språket är från funktionsbibliotek. (Nu räknas väl t.ex. stdio som att det "ingår" i C, men faktum är ju att det är kod som ligger utanför den man själv skrivet och det behövs en #include för att komma åt det.)
I de flesta moderna språk kan du i princip inte göra nånting som har med I/O att göra, allt sånt hanteras av funktionsbibliotek.
Många saker som man tycker "ingår" i språket är från funktionsbibliotek. (Nu räknas väl t.ex. stdio som att det "ingår" i C, men faktum är ju att det är kod som ligger utanför den man själv skrivet och det behövs en #include för att komma åt det.)
Re: Filhantering i C++?
Frågeställningen är tydlig och det finns flera relevanta svar.
När man pratar om språk så är under underförstått att det inbegriber dess standardbibliotek. Även specifikationerna för språk som C och C++ talar om "C programming language" och "C++ programming language" respektive, men omfattar även standardbiblioteken.
När man pratar om språk så är under underförstått att det inbegriber dess standardbibliotek. Även specifikationerna för språk som C och C++ talar om "C programming language" och "C++ programming language" respektive, men omfattar även standardbiblioteken.
Re: Filhantering i C++?
Men standardbiblioteken för I/O finns ju inte på all hårdvara... Bygger man en egen burk med en AVR och programmerar i C så måste man ju skriva alla I/O-funktioner själv.
Och som svaren på frågan visade: Det finns ingen grundfunktion i C för det som efterfrågade utan det beror på vad man använder för funktionsbibliotek.
Och som svaren på frågan visade: Det finns ingen grundfunktion i C för det som efterfrågade utan det beror på vad man använder för funktionsbibliotek.
Re: Filhantering i C++?
>Bygger man en egen burk med en AVR och programmerar i C så måste man ju skriva alla I/O-funktioner själv
njaeeeä.... Atmel har ju ett "standardbibliotek" för AVR som man i princip räknar med ska ingå. Där finns all I/O och t.ex. interrupt-hantering.
Men i C och C++ finns alltså i standardbiblioteken inte så värst mycket när det gäller filhantering? Det är väl <fstream.h> och det borde väl finnas till de flesta OS ? Fast är t.ex <fstream.h> OS-beroende eller är det samma källkod för alla?
Nåja... tack för alla svar... Som vanligt får jag väl vänta till helgen för att hinna testa något.
>Java...
Usch... När jag skulle börja lite med programmering för ett par år sedan valde jag Java för jag tyckte det verkade smart just p.ga plattformsoberoendet. Men jag upplever java som kasst, långsamt och onödigt krångligt (inte språket i sig, men de oändliga biblioteken med oändliga varianter på allt!). Så jag har lagt ner det. En av orsakerna är att java är sämre än alla andra språk på just hårdvarukompabilitet... man måste ha OS-beroende specialkod för nästan varje grej, och det är ändå ofta det inte fungerar...
njaeeeä.... Atmel har ju ett "standardbibliotek" för AVR som man i princip räknar med ska ingå. Där finns all I/O och t.ex. interrupt-hantering.
Men i C och C++ finns alltså i standardbiblioteken inte så värst mycket när det gäller filhantering? Det är väl <fstream.h> och det borde väl finnas till de flesta OS ? Fast är t.ex <fstream.h> OS-beroende eller är det samma källkod för alla?
Nåja... tack för alla svar... Som vanligt får jag väl vänta till helgen för att hinna testa något.
>Java...
Usch... När jag skulle börja lite med programmering för ett par år sedan valde jag Java för jag tyckte det verkade smart just p.ga plattformsoberoendet. Men jag upplever java som kasst, långsamt och onödigt krångligt (inte språket i sig, men de oändliga biblioteken med oändliga varianter på allt!). Så jag har lagt ner det. En av orsakerna är att java är sämre än alla andra språk på just hårdvarukompabilitet... man måste ha OS-beroende specialkod för nästan varje grej, och det är ändå ofta det inte fungerar...
Re: Filhantering i C++?
jo, jag såg det tipset i början av tråden... men jag fick aldrig klart för mig om det funkar på Win-XP maskiner?
QT verkar ju vara ett kul bibliotek.... (jag följer noga tråden om grfiska gränssnitt i Linux) Laddade just ner QT4 Designer. Frågan är om qt4 Designer går att integrera i något IDE? Jag kör just nu med Code:Blocks när jag ska göra C++ program i Linux. (I windows använder jag något annat, vad det nu heter...).. Men QT4 Designer kanske är ett eget IDE?
Ska också kolla in ett program som heter "qtfm" som är "A lightweight file manager written in QT.". Kan ju ge något att studera koden kanske....
QT verkar ju vara ett kul bibliotek.... (jag följer noga tråden om grfiska gränssnitt i Linux) Laddade just ner QT4 Designer. Frågan är om qt4 Designer går att integrera i något IDE? Jag kör just nu med Code:Blocks när jag ska göra C++ program i Linux. (I windows använder jag något annat, vad det nu heter...).. Men QT4 Designer kanske är ett eget IDE?
Ska också kolla in ett program som heter "qtfm" som är "A lightweight file manager written in QT.". Kan ju ge något att studera koden kanske....
Re: Filhantering i C++?
> >Java...
Håller med dig, jesse.
Språket som sådan kanske är "bra" och väldigt "inne".
Plattformsoberoende låter nog "vackert" i teorin.
I praktiskt bruk (förrutom enanvändarmiljöer kanske) är det mest skit.
Ofta värre en "DLL-hell".
Håller med dig, jesse.
Språket som sådan kanske är "bra" och väldigt "inne".
Plattformsoberoende låter nog "vackert" i teorin.
I praktiskt bruk (förrutom enanvändarmiljöer kanske) är det mest skit.
Ofta värre en "DLL-hell".