我正在尝试使用Windows CopyFile函数复制一个文件并将其重命名为另一个文件夹中的另一个文件。但是,它总是返回该路径存在问题,即使我提供的路径正确并且文件和文件夹都存在。我究竟做错了什么?

使用“ C:\ Dummy.png”作为源,使用“ C:\ Dest”作为目标。

void CreateDummyItemsAssetsPNG()
{
    string  DummyAsset;
    string  dummyDestination;

    cout<<"Please Provide dummy file asset that is a .png: ";
    cin>>DummyAsset;

    cout<<"Please Provide a Destination: ";
    cin>>dummyDestination;

    vector<string>::iterator itor;
    string fullDest;

    for(itor = listOfItems.begin(); itor<listOfItems.end(); ++itor)
    {
        fullDest.clear();
        fullDest = dummyDestination + "\\"+ (*itor)+".png";
        cout<<"Copy: "<<DummyAsset<<" TO: "<<fullDest<<endl;
        if(!CopyFile(LPCTSTR(DummyAsset.c_str()),LPCTSTR(dummyDestination.c_str()),false) )
        {
            printf("Could not copy file.\n");
            cout<<GetLastError()<<endl;
        }
    }
}


谢谢!

最佳答案

CopyFile()期望将文件名作为第二个参数,而您仅传递目标目录。指定全名(您似乎在fullDest中执行此操作),这样就可以了。

10-08 08:53