[C++] Verificare l'esistenza di una directory su in linux

di
Anonimizzato21568
il
5 risposte

[C++] Verificare l'esistenza di una directory su in linux

Salve a tutti, sapreste dirmi come fare?

5 Risposte

  • Re: [C++] Verificare l'esistenza di una directory su in linux

    Puoi utilizzare controllando if ENOENT == errno che indica che la directory non esiste.
    
    DIR* dir = opendir("mydir");
    if (dir)
    {
        /* Directory exists. */
        closedir(dir);
    }
    else if (ENOENT == errno)
    {
        /* Directory does not exist. */
    }
    else
    {
        /* opendir() failed for some other reason. */
    }
    
  • Re: [C++] Verificare l'esistenza di una directory su in linux

    Non è che potresti spiegarmi meglio il codice?
  • Re: [C++] Verificare l'esistenza di una directory su in linux

    Scusa cosa non capisci, è una chiamata di una funzione che torna un errore se la directory non esiste.
  • Re: [C++] Verificare l'esistenza di una directory su in linux

    Si, ora è chiaro, l'avevo guardato di fretta, grazie mille!
  • Re: [C++] Verificare l'esistenza di una directory su in linux

    Puoi utilizzare anche stat
    
    #include <iostream>
    #include <sys/stat.h>
    
    int main( int argc, char *argv[] ) 
    {
    
    	struct stat stat_buf;
    	std::string nome_file = "./";
    
        if ( stat( nome_file.c_str(), &stat_buf) == 0 ) {
    		
    		if( stat_buf.st_mode & S_IFDIR ) {
    			std::cout << nome_file << " è una directory" << std::endl;
    		}
    		else if( stat_buf.st_mode & S_IFREG ) {
    			std::cout << nome_file << " è un file regolare" << std::endl;
    		}
    		else {
    			// altro se serve
    		}		
    
    	}
    	else
    		std::cout << "erro nella chiamata a stat" << std::endl;
    
    	return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
5 risposte