如何使用wstring重命名文件?

时间:2013-03-22 11:24:04

标签: c++ visual-c++

如何在c ++中重命名文件?

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

tempFileName的类型为std::wstring。但rename()函数仅接受const char*个参数。

3 个答案:

答案 0 :(得分:7)

在Visual C ++中,rename()的宽字符版本是_wrename()。这不是便携式的,但您可能不关心这一点。此外,你不能添加这样的原始字符串指针,你想要这样的东西(未经测试):

std::wstring newName(tempFileName);
newName += L"new.txt";
_wrename(tempFileName.c_str(), newName.c_str());

答案 1 :(得分:3)

由于您的目标是Windows,请改用_wrename()功能。

答案 2 :(得分:3)

使用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
}

有关文档,请参阅here