Windows CopyFile的正确输入格式是什么?

时间:2012-07-19 22:43:00

标签: c++ windows winapi

我正在尝试使用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; 
        }
    }
}

谢谢!

1 个答案:

答案 0 :(得分:5)

CopyFile()期望文件 name 作为第二个参数,而您只传递目标目录。指定全名(您似乎在fullDest中执行此操作),这应该有效。