/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
directories i C++
Fra : Rene Thomsen


Dato : 10-07-01 11:01

Hejsa,

jeg har lige et par spg. vedr. haandtering af directories i C++ (Std. C
eksempler er ok!)

Jeg bruger GCC under Linux (Redhat)

1) Hvordan checker man om et givent directory eksisterer?
Det eneste jeg har kunnet finde er 'opendir' (findes i dirent.h', hvor
man blot kan teste paa return vaerdien.
Er det den smarteste/eneste maade at goere det paa?

2) Hvordan skaber man directories (i dette tilfaelde under Unix/Linux)?

Mvh.
Rene

 
 
Rene Thomsen (10-07-2001)
Kommentar
Fra : Rene Thomsen


Dato : 10-07-01 13:51

Rene Thomsen wrote:
>
> Hejsa,
>
> jeg har lige et par spg. vedr. haandtering af directories i C++ (Std. C
> eksempler er ok!)
>
> Jeg bruger GCC under Linux (Redhat)
>
> 2) Hvordan skaber man directories (i dette tilfaelde under Unix/Linux)?
hmm, jeg fandt loesningen i sys\stat.h (her ligger mkdir funktionen)

Mvh.
Rene

Robert Bauck Hamar (10-07-2001)
Kommentar
Fra : Robert Bauck Hamar


Dato : 10-07-01 23:24

Rene Thomsen <thomsen@daimi.au.dk> skreiv:

| Hejsa,
|
| jeg har lige et par spg. vedr. haandtering af directories i C++ (Std. C
| eksempler er ok!)
|
| Jeg bruger GCC under Linux (Redhat)
|
| 1) Hvordan checker man om et givent directory eksisterer?
| Det eneste jeg har kunnet finde er 'opendir' (findes i dirent.h', hvor
| man blot kan teste paa return vaerdien.
| Er det den smarteste/eneste maade at goere det paa?

Jeg skulle tro access(2),
#include <unistd.h>
int access(const char *pathname, int mode);
er bedre, fordi den (antakeligvis) bruker mindre ressurser. Den
returnerer 0 for ok, eller -1 med errno satt. mode er en mask av:
F_OK: fil eksisterer
R_OK: r satt
W_OK: w satt
X_OK: x satt
eks:

#include <iostream>
#include <string>
#include <unistd.h>

int main()
{
std::string pathname;
for (;;)
{
std::cout << "Type a directory name: ";
std::getline(std::cin, pathname);

//null-string avlutter showet
if (pathname.length() == 0)
break;

//være sikker på at det _er_ et dir.
pathname += '/';

//sjekker om fil existerer
if (!access(pathname.c_str(), F_OK))
std::cout << "Dir exists!" << std::endl;
else
std::cout << "Dir does not exist!" << std::endl;
}
}

--
Robert Bauck Hamar

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste