0

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);

すべてが明らかだと思います。

4

1 に答える 1

1

これはあなたが探していることをするはずです:

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

vecAviFilesとして保存した方がおそらく良いでしょうvector<path>。コードは少し短くなります。

path destination = fileCopiedDestination / iterAvi->filename();
于 2012-02-25T23:14:47.780 に答える