我有一个功能,从文件夹中删除一个文件"定居点"的名称。
我的代码:
void delete_settlement(string name){
std::ostringstream oss;
oss<<"settlements/"<<name<<".txt";
string file_name = oss.str();
std::ifstream file_exists;
file_exists.open(file_name);
//Если файл не существует, оповестить об этом пользователя
if(!file_exists){
cout << "File doesn't exist, it can not be deleted\n";
std::ostringstream oss2;
oss2<<"buffer_settlements/"<<name<<".txt";
}
else{
std::filesystem::path tmp = std::filesystem::temp_directory_path();
cout << "NAME " << file_name << "\n";
std::filesystem::path p = file_name;
std::filesystem::remove(p);
}
}
我试过用file_name代替path instance,但也不起作用。这段代码只在路径是常量字符串时才起作用(即用常量字符串替换file_name)。要实现这个函数,我该怎么做?
我试过用不同的方法来表达文件的路径,但是没有一种方法起作用。我总是得到下面的运行时错误:第一个月
1条答案
按热度按时间gmxoilav1#
正如@RichardCritten和@john指出的,我必须在删除文件之前关闭它。
解决方案: