這是我的功能:
void Mail::send_mail(int id, std::string send_to, std::string subject, std::string message) {
int receiever_id = find_user(send_to);
std::fstream file("/mails/" send_to "/" std::to_string(accounts.at(receiever_id).number_of_mails) ".txt", std::ios::out);
email *mail = new email("From: " accounts.at(id).username, "Subject: " subject, "Content: " message);
accounts.at(receiever_id).inbox.push_back(*mail);
file<<"From: "<<accounts.at(id).username<<std::endl;
file<<"Subject: "<<subject<<std::endl;
file<<"Content: "<<message;
accounts.at(receiever_id).number_of_mails ;
delete mail;
rewrite();
return;
}
如果不存在,我想創建一個檔案夾 mails 和一個帶有接收者名稱的檔案夾,然后在里面創建一個 txt 檔案,但由于某種原因它不起作用。我不能使用外部庫或系統函式。
uj5u.com熱心網友回復:
正如評論中提到的@Eugene,您不能在不存在的目錄中創建檔案。C 不會首先為您創建目錄。
您可以先使用 boost 創建目錄,然后繼續執行您的邏輯。
#include <boost/filesystem.hpp> ?boost::filesystem::create_directory("dirname");
使用 boost 的原因是你的代碼是跨平臺的并且可以在不同的作業系統上作業。您可以使用 system() 并將命令傳遞給它以在您的作業系統上創建目錄。
例如,在 Linux 上,這將是這樣的:
system(“mkdir user1”);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/409054.html
標籤:
