5

c++でファイルの名前を変更するにはどうすればよいですか?

rename(tempFileName.c_str(), tempFileName.c_str()+"new.txt");

しかしtempFileName、タイプstd::wstringです。ただし、rename()関数はパラメーターのみを受け入れconst char*ます。

4

3 に答える 3

7

Visual C++ では、rename() のワイド文字バージョンは _wrename() です。これは移植性がありませんが、気にする必要はないかもしれません。また、そのような生の文字列ポインターを追加することはできません。次のようなものが必要です(テストされていません):

std::wstring newName(tempFileName);
newName += L"new.txt";
_wrename(tempFileName.c_str(), newName.c_str());
于 2013-03-22T11:27:38.213 に答える
4

を使用する場合Visual Studio、通常はワイド文字列を使用します。-関数を使用できるファイルの名前を変更するには、次MoveFileExのようにファイルの名前を変更できます。

std::wstring newFilename = tempFileName.c_str();
newFilename += _T("new.txt");
if(!MoveFileEx(tempFileName.c_str(), newFilename.c_str(), flags )){
//error handling if call fails
}

ドキュメントについては、こちらを参照してください。

于 2013-03-22T11:27:55.157 に答える
3

Windows をターゲットにしているため、_wrename()代わりに関数を使用してください。

于 2013-03-22T11:27:27.247 に答える