c++でファイルの名前を変更するにはどうすればよいですか?
rename(tempFileName.c_str(), tempFileName.c_str()+"new.txt");
しかしtempFileName
、タイプstd::wstring
です。ただし、rename()
関数はパラメーターのみを受け入れconst char*
ます。
c++でファイルの名前を変更するにはどうすればよいですか?
rename(tempFileName.c_str(), tempFileName.c_str()+"new.txt");
しかしtempFileName
、タイプstd::wstring
です。ただし、rename()
関数はパラメーターのみを受け入れconst char*
ます。
Visual C++ では、rename() のワイド文字バージョンは _wrename() です。これは移植性がありませんが、気にする必要はないかもしれません。また、そのような生の文字列ポインターを追加することはできません。次のようなものが必要です(テストされていません):
std::wstring newName(tempFileName);
newName += L"new.txt";
_wrename(tempFileName.c_str(), newName.c_str());
を使用する場合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
}
ドキュメントについては、こちらを参照してください。
Windows をターゲットにしているため、_wrename()
代わりに関数を使用してください。