From d099adf73f2308b3221d3edfee14c2b10461482f Mon Sep 17 00:00:00 2001 From: hnu202326010401 <2263510185@qq.com> Date: Tue, 30 Sep 2025 15:42:59 +0800 Subject: [PATCH] ADD file via upload --- src/filemanage.cpp | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/filemanage.cpp diff --git a/src/filemanage.cpp b/src/filemanage.cpp new file mode 100644 index 0000000..5cc7ed2 --- /dev/null +++ b/src/filemanage.cpp @@ -0,0 +1,67 @@ +#include"filemanage.h" +#include"tool.h" +#include +#include +#include +#include + +Filemanage::Filemanage(const std::string&dir):baseDir(dir){ + createDir(baseDir); +} + +void Filemanage::createDir(const std::string& path){ + _mkdir(path.c_str()); +} + +std::string Filemanage::getUserFolder(const std::string& username){ + std::string userFolder = baseDir + "/" + username; + createDir(userFolder); + return userFolder; +} + +std::string Filemanage::saveQuestions(const std::string& username,const std::vector questions){ + std::string userFolder = getUserFolder(username); + std::string filename = tool::getCurrentTime() + ".txt"; + std::string filepath = userFolder + "/" + filename; + + std::ofstream userpath(filepath); + if(!userpath.is_open()){ + std::cout<<"无法创建文件"< Filemanage::getQuestions(const std::string&username){ + std::setproductedQuestion; + std::string userFolder = getUserFolder(username); + DIR* dirstream = opendir(userFolder.c_str()); + struct dirent* dir; + while((dir = readdir(dirstream)) != NULL){ + std::string filename = dir->d_name; + if(filename.length() > 4&&filename.substr(filename.length() - 4) == ".txt"){ + std::string filepath = userFolder + "/" + filename; + std::ifstream userpath; + userpath.open(filepath); + if(userpath.is_open()){ + std::string OneQuestion; + while(getline(userpath,OneQuestion)){ + OneQuestion = tool::EreaseEmpty(OneQuestion); + if(!OneQuestion.empty()&&OneQuestion.find('.') != std::string::npos){ + int dotnum = OneQuestion.find('.'); + OneQuestion = OneQuestion.substr(dotnum + 1,OneQuestion.size() - dotnum - 1); + productedQuestion.insert(OneQuestion); + } + } + } + userpath.close(); + } + } + closedir(dirstream); + return productedQuestion; +}