Forum The World na Goldenline.pl Twitter Facebook Kanał RSS

[C++] CopyDirectory – kopiowanie katalogów

CopyDirectory() kopiuje zadany katalog w wybrane miejsce włącznie z jego zawartością.

Składnia:

int CopyDirectory(
    const std::string & srcDir,
    const std::string & dstDir,
    bool protect
);

Ciało funkcji:

int CopyDirectory(const std::string & srcDir, const std::string & dstDir, bool protect) {
    int errors = 0;
    struct dirent * drnt;
    DIR * dir = opendir(srcDir.c_str());
    std::string src, dst;

    CreateDirectory(dstDir.c_str(), NULL);

    while((drnt = readdir(dir)) != NULL) {
        if(std::string(drnt->d_name) != "." && std::string(drnt->d_name) != "..") {
            src = srcDir + "\\" + drnt->d_name;
            dst = dstDir + "\\" + drnt->d_name;

            if(IsDirectory(src))
                CopyDirectory(src, dst, protect);
            else
                errors += !CopyFile(src.c_str(), dst.c_str(), protect);
        }

        seekdir(dir, telldir(dir));
    }

    closedir(dir);
    return errors;
}

Parametry:

  • srcDir – katalog do skopiowania
  • dstDir – gdzie skopiować
  • protect – chroń przed nadpisaniem

Wartość zwracana:

  • ilość błędów, która pojawiła się podczas kopiowania katalogu. 0 oznacza pełen sukces działania funkcji.

Wymagania:


Facebook Twitter Delicious Digg Reddit

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current month ye@r day *

CommentLuv badge