无法删除 c++ 中具有完整路径的文件
Unable to delete file with complete path in c++
我正在使用visual studio 2017
并使用c ++工作。我有代码,我从用户那里获取一些输入,并在此基础上尝试删除文件。
auto ver = FLAGS_ver; // taking input from the user
string file = "C:\Program Files(x86)\data_" + ver + "\output\output.json";
std::ofstream output_file(outputFile);
基本上ver
是访问该特定目录所基于的数字。所以最后的string file
变成:
C:\Program Files(x86)\data_209\output\output.json
所以我需要删除我正在使用以下命令的上述文件:
int res = remove(file);
但它显示以下错误:
Error (active) E0304 no instance of overloaded function "std::remove" matches the argument list
Error C2664 'int remove(const char *)': cannot convert argument 1 from 'std::string' to 'const char *'
我能够写入此json文件,因此权限没有问题。我该如何解决这个问题。谢谢
您的问题是std::remove
期望 C 字符串 ( const char *
(。您可以使用 std::string
中的 c_str()
方法。
int res = remove(file.c_str());
但是,您可以使用更合适的C++ std::filesystem::remove (来自 C++17s 文件系统库(来执行相同的操作。现在,由于您使用的是Visual Studio 2017,因此std::filesystem
尚未完全实现,您必须使用实验版本。要完成相同的操作:
#include <filesystem>
// ...
std::experimental::filesystem::remove(file);
相关文章:
- 如何将更多文件夹添加到c++include路径
- 从函数角度看ID到文件路径的内部与外部映射
- 在C++中设置基于操作系统的文件路径
- C++17 文件系统::remove_all 带有通配符路径
- 从 C 中的变量获取文件的路径,C++
- 将共享库的搜索路径更改为生成文件中提供的 rpath
- 修改生成文件以简化框架 #include 路径
- 将Visual Studio Code路径设置为.clang_format文件
- Windows 非 ASCII 文件路径
- 非 ASCII 文件路径窗口
- C++和带有国家符号的文件路径(也许用 UTF8 编码)
- 获取 H5::D ataSet 的hid_t和文件中的路径以使用 H5OCopy
- 在特定 Unicode 路径中创建文件
- 如何让用户在 tinyxml2 中输入 XML 文件的路径
- 如何将COM .tlb文件导入具有相对路径C++文件中?
- C++ 路径文件存在限制为 260 个字符
- QT-在pro中指定DLL路径.文件
- 路径文件存在导致链接器错误 2028/2019
- 选择QTableWidgetItem qt的路径文件
- 如何有一个正确的路径文件读取它到stringstream