Папка-копия VC ++ - PullRequest
       48

Папка-копия VC ++

4 голосов
/ 29 марта 2010

Я хочу скопировать каталог с одного диска на другой. Мой выбранный каталог содержит много подкаталогов и файлов. Как я могу реализовать то же самое с помощью vc ++

Ответы [ 3 ]

5 голосов
/ 29 марта 2010

API-функция SHFileOperation () - это рабочая лошадка для копирования файлов. Он поддерживает повторяющиеся каталоги. Просмотрите параметры, доступные в структуре SHFILEOPSTRUCT , для управления копией.

0 голосов
/ 29 марта 2010

Если у вас есть доступ к библиотеке надстроек, это ваш друг:

http://www.boost.org/doc/libs/1_42_0/libs/filesystem/doc/index.htm

Проверьте учебник на хорошие примеры, используя итератор файловой системы.

Для начала:

#include <iostream>
#include “boost/filesystem.hpp”
int main(int argc, char *argv[])
  {
  boost::filesystem::path path1("/usr/local/include"); // your source path
  boost::filesystem::path::iterator pathI = path1.begin();
  while (pathI != path1.end())
    {
    std::cout << *pathI << std::endl; // here you could copy the file or create a directory
    ++pathI;
    }
  return 0;
  }
0 голосов
/ 29 марта 2010

Трудный путь. скопируйте каждый файл индивидуально.

Используйте FindFirst() и FindNext() для перебора содержимого каталога Используйте SetCurrentDirectory() для входа и выхода из каталогов
Используйте CreateDirectory() для создания нового дерева папок
и наконец, используйте CopyFile() для копирования файлов

...