Как получить имя файла - PullRequest
       12

Как получить имя файла

0 голосов
/ 26 февраля 2012

Я хочу получить имя файла из vector <wstring> после операции поиска. Я хочу скопировать все файлы в vecAviFiles по другому пути (например, D: \ Test).

 int main()
    {
      int                      iRC         = 0;
      std::vector<std::wstring> vecAviFiles;
      std::wstring fileCopiedDestination = L"D:\\";





  // Search 'c:' for '.avi' files including subdirectories
  iRC = SearchDirectory(vecAviFiles, L"c:\\", L"doc");
  if(iRC)
  {
    std::cout << "Error " << iRC << std::endl;
    return -1;
  }

  // Print results
  for(std::vector<std::wstring>::iterator iterAvi = vecAviFiles.begin(); iterAvi != vecAviFiles.end(); ++iterAvi)
    {

        std::wcout << *iterAvi << std::endl;
        copy_file(*iterAvi,fileCopiedDestination + path::filename(*iterAvi));

    }

    return 0;
}

Проблема в этой функции (она не работает) библиотеки boost copy_file(*iterAvi,fileCopiedDestination + path::filename(*iterAvi)); как я могу получить имя файла, чтобы добавить его к пути fileCopiedDestination.или как я могу сделать то же самое, используя эту функцию из WIN API

CopyFileW(Input.c_str(),filename(Input.c_str()) , TRUE);

Я думаю, что все ясно.

1 Ответ

1 голос
/ 26 февраля 2012

Это должно сделать то, что вы ищете:

path destination = fileCopiedDestination / path(*iterAvi).filename();
copy_file(*iterAvi, destination);

Возможно, будет лучше, если вы сохраните vecAviFiles как vector<path>, тогда код будет немного короче:

path destination = fileCopiedDestination / iterAvi->filename();
...