2016-07-05 2 views
2

Каков наилучший способ скопировать папку (и все ее содержимое) из адреса 1 (адрес папки) в адрес2 в c? Я не хочу, чтобы скопировать его в буфер, а затем сохранить его, потому что он может содержать большие файлыСкопировать папку в c

+1

В текущем стандарте C++ нет понятия папок. Вы можете использовать 'system()' и соответствующую команду вашей ОС. –

+0

boost: файловая система, в случае C++ (вы отметили ее). В C - только платформе API или системе() – Starl1ght

+0

Для C++, пожалуйста, прочитайте этот вопрос: http://stackoverflow.com/questions/8593608/how-can-i-copy-a-directory-using-boost-filesystem – alexeykuzmin0

ответ

0

Если вы хотите, чтобы это реализовать себя, заглянуть в this код

Если это не так важно, что вам есть реализация, и вы можете использовать команду cp операционной системы, а не использовать system('cp',...) или system('xcopy',...) для Windows в вашем коде.

Во всяком случае, каждая реализация буфера некоторые из файла для копирования (вы контролируете размер буфера, если реализовать его самостоятельно), например:

Допустим, вы хотите скопировать файл X размером 10000 байт
С буфером размером 100 байт вы будете циклически заполнять буфер и записывать в целевой файл

+1

* " вы можете использовать команду 'cp' операционной системы * * - Предполагается, что ОС имеет команду' cp'. Windows этого не делает, и, поскольку вопрос задается специально для Windows, мне придется отказаться от этого ответа. – IInspectable

+0

Будете ли вы upvoteit сейчас? –

+0

Нет. ОП запрашивает * «лучший» * способ. Вызов 'system' - возможно - худший. Используйте оптимизированную инфраструктуру копирования файлов и папок оболочки. Это намного лучше при сообщениях об ошибках, может обеспечить обратную связь с производительностью и невероятно быстро при перемещении файлов в пределах одного тома. – IInspectable

Смежные вопросы