Вот простая версия, с которой вы можете начать работу, поскольку, если я правильно понял, ваша проблема заключается в извлечении списка файлов, а не в переносе. С небольшой рекурсией вы также можете спуститься в подкаталоги и получить полный список всего за один раз (достаточно просто изменить этот пример).
// Returns files in the specified directory path.
vector<wstring> list_files(wstring path)
{
vector<wstring> subdirs, matches;
WIN32_FIND_DATA ffd;
HANDLE hFind = FindFirstFile((path + L"\\*.*").c_str(), &ffd);
if (hFind != INVALID_HANDLE_VALUE)
{
do
{
wstring filename = ffd.cFileName;
if (!(ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
matches.push_back(path + L"\\" + filename);
} while (FindNextFile(hFind, &ffd) != 0);
}
FindClose(hFind);
return matches;
}
Пример:
vector<wstring> files = list_files("C:\\pr0n");
// 'files' now contains 1,000 file entries.
// Directories are not included.
// Now send them over individually.
Обратите внимание, что есть лучшие альтернативы, кросс-платформенный, если вы заинтересованы, такие как повышающего FS.
Какая часть у вас есть проблемы с? Получение списка каталогов? Отправка файлов? Оба они зависят от операционной системы, в которой вы находитесь. В системах POSIX (например, Linux и OSX) вы можете использовать ['opendir'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/opendir.html) и [' readdir'] (http: // pubs .opengroup.org/onlinepubs/9699919799/функции/readdir.html). В Windows вы можете использовать ['FindFirstFile'] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418%28v=vs.85%29.aspx) и [' FindNextFile'] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364428%28v=vs.85%29.aspx). –
Передача файла по файлу. Мне нужно перенести всю папку. – Draek
У меня нет проблем с передачей, просто не знаю, что мне делать, чтобы загрузить полный каталог – Draek