我想从 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);
我认为一切都清楚了。
最佳答案
这应该可以满足您的需求:
path destination = fileCopiedDestination / path(*iterAvi).filename();
copy_file(*iterAvi, destination);
如果你存储 vecAviFiles
可能会更好作为vector<path>
,那么代码会更短一些:
path destination = fileCopiedDestination / iterAvi->filename();
关于c++ - 如何获取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9448910/