我正在编写一个C ++程序,如果满足某些条件,我希望删除一些已创建的文件。这些文件具有各种文件名,在每次迭代中使用“string”类型进行分配。现在我正在尝试删除一些带有文件名的文件,但似乎 Deletefile 功能和删除都不能处理C ++字符串。我也尝试将字符串转换为c类型char *,但它不起作用。
我在Windows 10上使用visual studio community 2015.
他们有什么方便的解决这个问题的方法吗?
答案 0 :(得分:6)
如评论中所述 - 函数.c_str()
返回可与DeleteFile
和remove
一起使用的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*
。