答案是使用std::remove函数可跨平台删除文件。该函数定义于,成功返回0,失败返回非零值,可结合文件存在性检查避免误报,Windows下也可用_unlink或DeleteFile进行更底层操作,但推荐优先使用std::remove以保证可移植性。

在C++中删除文件可以通过调用标准库中的 std::remove 函数来实现。这个函数不仅可用于删除普通文件,也可以用于删除空的目录(某些系统上可能不支持通过 remove 删除目录)。它定义在 头文件中。
使用 std::remove 删除文件
std::remove 是最简单且跨平台兼容性较好的方式。其函数原型如下:
int remove(const char *filename);如果删除成功,返回 0;失败则返回非零值。
示例代码:
立即学习“C++免费学习笔记(深入)”;
#include iostream>#include
int main() {
const char* filename = "test.txt";
if (std::remove(filename) == 0) {
std::cout } else {
std::cout }
return 0;
}
检查文件是否存在再删除
为避免误报错误,可以在删除前先判断文件是否存在。虽然 std::remove 本身在文件不存在时会失败,但你可以用 std::ifstream 尝试打开文件来预判:
SHOPEX简灰服装商城整站源码下载。 安装方法:1.解压上传程序至网站根目录.. 访问:域名/bak.(用户名:admin 密码:123456)2.进入帝国备份王后,配置数据库数据库信息.选择-www.taomoban.net目录.还原数据库.3.修改FTP目录下的config/config.phpphp 数据库连接信息.4.登陆网站后台--清空缓存..5.删除bak文件夹 后台:shopadm
bool fileExists(const char* filename) {
std::ifstream file(filename);
return file.good();
}
然后结合使用:
if (fileExists("test.txt")) {if (std::remove("test.txt") == 0) {
std::cout } else {
std::cout }
} else {
std::cout }
Windows 平台额外选项:_unlink 和 DeleteFile
在 Windows 系统中,还可以使用 _unlink(声明在
或者使用 Win32 API:
#include windows.h>DeleteFile("test.txt"); // 成功返回 TRUE
这种方式更底层,适合需要精确控制权限或处理只读文件等场景。
基本上就这些常用方法。推荐优先使用 std::remove,简洁且可移植性强。









