Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: C tiedostojen listaus

rndprogy [07.11.2004 17:29:00]

#

Miten saisin tiedostot listattua. Pitäisi myös saada valittua se hakemisto josta tiedostot listataan. Mitään System(); pasketta en sitten suostu käyttämään.

sqwiik [07.11.2004 17:35:30]

#

Käytä ffblk-rakennetta ja findfirst/findnext-funktioita. Seuraava esimerkki poistaa kaikki MAP-päätteiset tiedostot alihakemistosta DATA (copy-paste erkki saaressa). Pienellä muokkauksella saat sen tekemään mitä halusit. Löytyy dir.h:sta.

#include <dir.h>
*** koodia ***
struct ffblk tiedosto;
int a;
  //Haetaan ensimmäinen tiedosto. findfirst palauttaa 0, mikäli
  //tiedosto(ja) löytyi. tiedosto-rakenteessen talletetaan jatko-ohjeet
  //ja findnext sitten jatkaa...
  a = findfirst("DATA\\*.MAP", &tiedosto);
  while(a==0){
    remove(tiedosto.ff_name); //Poistetaan tiedosto
    a = findnext(&tiedosto); //Haetaan seuraava
  }
*** koodia ***

Eli tiedoston nimi on ffblk::ff_name-nimisessä paikassa. Voit katsella koko rakennetta tutkimalla dir.h:n rakennemäärittelyä.

EDIT - typo.

EDIT2 - otsikon perusteella luulin tarkoitettavan C:tä, en C++ Win-ympäristössä :P

rndprogy [07.11.2004 17:58:29]

#

Ei taida VC++ tukea dir.h:ta mutta sain sain mutta sain irkissä vinkin että käytä WINAPIN FindFirstFileä ja sillä sain toimimaan.

Metabolix [07.11.2004 18:11:49]

#

VC++:n helppi tietää, että "Required Header: <io.h>"

thefox [08.11.2004 19:26:44]

#

Ja myös Putkan hakua kannattaa käyttää, esim. "FindFirstFile"-hakusanalla olisi löytynyt https://www.ohjelmointiputka.net/keskustelu/5247-oma-funktio

rndprogy [08.11.2004 19:59:59]

#

Niinhän minä käytinkin. :o En vain tiennyt tuota FindFirstFileä

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta