Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przerobienie funkcji pod Linux

Ostatnio zmodyfikowano 2011-12-26 16:00
Autor Wiadomość
Terminator3
Temat założony przez niniejszego użytkownika
Przerobienie funkcji pod Linux
» 2011-12-25 23:10:33
otóż mam taka oto funkcję:
C/C++
std::string dest;
bool DirRemove()
{
    DIR * pdir = opendir( dest.c_str() );
    if( !pdir )
         return false;
   
    readdir( pdir );
    readdir( pdir );
    dirent * pent = readdir( pdir );
    int len;
    while( pent )
    {
        if( pent->d_type == DT_DIR )
        {
            dest += pent->d_name;
            dest += '/';
            if( !DirRemove() )
                 return false;
           
        }
        else
        {
            len = dest.length();
            dest += pent->d_name;
            remove( dest.c_str() );
            dest.erase( len );
        }
        pent = readdir( pdir );
    }
    closedir( pdir );
    len =( !rmdir( dest.c_str() ) );
    dest.erase( dest.rfind( '/', dest.length() - 2 ) + 1 );
    return( len != 0 );
}
do zmiennej dest przed wykonaniem funkcji przypisuję nazwę (ścieżkę) folderu który chcę usunąć (po wykonaniu tej funkcji używa dest.clear()), funkcja ma na celu usunięcie folderu wraz z plikami wewnątrz, problem w tym że wcale nie działa ona na linux'ie (Ubuntu), co muszę w niej zmienić by działała poprawnie ?
P-46267
hincu
» 2011-12-25 23:17:19
uruchomic program przez root? O_O
P-46268
Terminator3
Temat założony przez niniejszego użytkownika
» 2011-12-25 23:21:37
eee co? za kogo ty mnie masz?
każda z tych funkcji (opendir, closedir, readdir, remove, rmdir) została przeze mnie przetestowana osobno i działa gdy sam podaję ścieżkę do pliku, a gdy używam tej funkcji jest jakiś błąd
P-46269
Gabes
» 2011-12-26 06:17:08
eee co? za kogo ty mnie masz?
-Za Terminatora.
To kosmici też lecą na Linuksie ?
Wesołych Świąt.
P-46275
Terminator3
Temat założony przez niniejszego użytkownika
» 2011-12-26 16:00:28
To kosmici też lecą na Linuksie ?
what?
Wesołych Świąt.
wzajemnie

To jak, pomoże ktoś? próbowałem też inaczej:
C/C++
bool DirRemove( const char * patch )
{
    DIR * pdir = opendir( patch );
    if( !pdir )
         return false;
   
    readdir( pdir );
    readdir( pdir );
    dirent * pent = readdir( pdir );
    while( pent )
    {
        if( pent->d_type == DT_DIR )
        {
            if( !DirRemove( pent->d_name ) )
                 return false;
           
        }
        else
        {
            remove( pent->d_name );
        }
        pent = readdir( pdir );
    }
    return( !rmdir( patch ) );
}
ale to samo (powyższy kod działał bodajże w dev-cpp)
P-46317
« 1 »
  Strona 1 z 1