2012-02-25 27 views
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; 
} 

問題は、私がfileCopiedDestinationパスに追加し、ファイル名を取得することができますどのようにブーストライブラリcopy_file(*iterAvi,fileCopiedDestination + path::filename(*iterAvi));の(それは働いていない)、この関数です。 または私はWIN API

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

からこの機能を使用してsamethingを行うことができますどのように私はすべてがクリアされていると思います。

+0

ことができます「仕事していない」ということについてもっと具体的になりますか?それはコンパイルされないか、コピーされませんか? – hmjd

+0

それはコンパイルされません – pourjour

+0

@pourjour私の答えを参照してください。私はコンパイルエラーを修正しました。 – spencercw

答えて

1

これは、あなたが探しているものを行う必要があります。

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

あなたはvector<path>としてvecAviFilesを保存した場合それはおそらく良いだろう、そして、コードが少し短くなります

path destination = fileCopiedDestination/iterAvi->filename(); 
関連する問題