Millä saisi windowsissa luettua jonkun kansion sisällön, siis kaikki tiedostot mitä siellä on? Ja vielä jos saisi vain tietyn formaatin tiedostot luettua, niin olisi parempi. Kieli on C.
Terveisiä Laaksoselle Rekursio-oppaan merkeissä: <io.h> on VC++:n helpin mukaan C:n vakiokirjasto, ja siitä löytyvien tiedostonlistausfunktioiden nimet näyttäisivät olevan samat kuin Pascalissa, joten olisi varmaan syytä yrittää lisätä näillä toteutettu kansionlistausesimerkki sinne Rekursion esimerkkeihin.
Itse vastaus:
Tuo onnistuu _findfirst
ja _findnext
-funktioilla, jotka löytyvät <io.h> -tiedostosta. Tarkemmin en osaa kertoa, näyttivät juuri riittävän erilaisilta kuin Pascalissa. Myös Windowsin omilla funktioilla varmaan onnistuu, ja jos ohjelmaa ei ole tarkoitus muille systeemeille kääntää, niin niitä voi olla helpompi käyttää.
Onnistuu aivan helposti.
SYSTEM("DIR");
:)
Ja Windowsin omat funktiot ovat FindFirstFile ja FindNextFile. MSDN:ssä on myös valmis esimerkki C-ohjelmasta, joka selvittää hakemiston tiedostot.
Saan tuolla FindFirstFilella tiedoston nimeksi pelkän pisteen. Missähän vika?
SYSTEM("DIR"); up your ass.
Mutta oivoi, sitten ei toimikaan välttämättä esim. Linuxissa.
System()-funktiota ei tulisi periaatteessa ikinä käyttää, vain joissain omaan tarkoitukseen tulevissa pikkuohjelmissa.
nakkikorva kirjoitti:
Saan tuolla FindFirstFilella tiedoston nimeksi pelkän pisteen. Missähän vika?
Kokeilitko, mitä sen jälkeen tulee? En testannut asiaa, mutta ainakin PHP:ssä ensimmäisinä hakemiston tiedostoina näkyy "." ja "..", joiden jälkeen tulevat varsinaiset alihakemistot ja tiedostot. Pistemerkinnät kuvaavat omaa hakemistoa ja alempaa hakemistoa.
No siitähän se johtuikin. Kiitos paljon!
Aihe on jo aika vanha, joten et voi enää vastata siihen.