From 0a3dc505cd22f699100d7d282b87dcd2d45c6acf Mon Sep 17 00:00:00 2001 From: dillon520 Date: Mon, 6 Jan 2025 15:02:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0Update=20funcs.cpp=EF=BC=8C?= =?UTF-8?q?=E4=B8=BA=E4=BA=86=E4=BF=9D=E6=8C=81=E4=BB=A3=E7=A0=81=E7=AE=80?= =?UTF-8?q?=E6=B4=81=E5=92=8C=E9=A3=8E=E6=A0=BC=E4=B8=80=E8=87=B4=EF=BC=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8fs::exists=E5=92=8Cfs::create=5Fdirectories?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=5Faccess=E5=92=8CCreateDir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WeChatFerry/spy/funcs.cpp | 40 +++------------------------------------ 1 file changed, 3 insertions(+), 37 deletions(-) diff --git a/WeChatFerry/spy/funcs.cpp b/WeChatFerry/spy/funcs.cpp index 601fbf6..2d72f5a 100644 --- a/WeChatFerry/spy/funcs.cpp +++ b/WeChatFerry/spy/funcs.cpp @@ -3,8 +3,6 @@ #include "framework.h" #include #include -#include -#include #include "codec.h" #include "exec_sql.h" @@ -77,37 +75,6 @@ static string get_key(uint8_t header1, uint8_t header2, uint8_t *key) return ""; // 错误 } -// 创建多级目录 -bool CreateDir(const char* dir) -{ - int m = 0, n; - string str1, str2; - str1 = dir; - str2 = str1.substr(0, 2); - str1 = str1.substr(3, str1.size()); - while (m >= 0) - { - m = str1.find('/'); - - str2 += '/' + str1.substr(0, m); - //判断该目录是否存在 - n = _access(str2.c_str(), 0); - if (n == -1) - { - //创建目录文件 - int flag = _mkdir(str2.c_str()); - if (flag != 0) { //创建失败 - LOG_ERROR("Failed to CreateDir:{}", dir); - return false; - } - } - - str1 = str1.substr(m + 1, str1.size()); - } - LOG_DEBUG("CreateDir {} success.", dir); - return true; -} - string DecryptImage(string src, string dir) { if (!fs::exists(src)) { @@ -149,11 +116,10 @@ string DecryptImage(string src, string dir) dst = fs::path(src).replace_extension(ext).string(); } else { dst = (dir.back() == '\\' || dir.back() == '/') ? dir : (dir + "/"); - replace(dst.begin(), dst.end(), '\\', '/'); - + // 判断dir文件夹是否存在,若不存在则创建(否则将无法创建出文件) - if (_access(dst.c_str(), 0) == -1) {//判断该文件夹是否存在 - bool success = CreateDir(dst.c_str()); //Windows创建文件夹 + if (!fs::exists(dst)) {//判断该文件夹是否存在 + bool success = fs::create_directories(dst); //Windows创建文件夹 if (!success) { //创建失败 LOG_ERROR("Failed to mkdir:{}", dst); return "";