0

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

ありがとう!

4

1 に答える 1

5

CopyFile()2番目のパラメータとしてファイルが必要ですが、宛先ディレクトリのみを渡します。フルネーム(で行うようですfullDest)を指定すると、これが機能するはずです。

于 2012-07-19T22:46:11.507 に答える