在Windows上使用C ++删除文件

时间:2015-11-25 12:41:38

标签: c++ windows

我正在编写一个C ++程序,如果满足某些条件,我希望删除一些已创建的文件。这些文件具有各种文件名,在每次迭代中使用“string”类型进行分配。现在我正在尝试删除一些带有文件名的文件,但似乎 Deletefile 功能和删除都不能处理C ++字符串。我也尝试将字符串转换为c类型char *,但它不起作用。

我在Windows 10上使用visual studio community 2015.

他们有什么方便的解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:6)

如评论中所述 - 函数.c_str()返回可与DeleteFileremove一起使用的C兼容字符串。

如果这不起作用,我猜你的app被编译为Unicode,这意味着你必须使用std::wstring而不是std::string

尝试将两种方式结合起来:

std::string fileName = "C://file.txt";
std::wstring wFileName(fileName.begin(),fileName.end());
auto res = DeleteFile(wFileName.c_str());

remove但是,使用“常规”const char*