使用xcode9 编译IOS11时 cocos的system函数无法使用

更新成xcode9,发现cocos的FileUtils移除目录使用的是system函数,但是已经无法使用,所以我打算使用stdio.h里面的标准方法remove方法,修改如下:

bool FileUtils::removeDirectory(const std::string& path)
{
#if !defined(CC_TARGET_OS_TVOS)
//     std::string command = "rm -r ";
//     // Path may include space.
//     command += "\"" + path + "\"";
//     if (system(command.c_str()) >= 0)
//         return true;
//     else
//         return false;

    bool ret = true;
    DIR *pDir;
    dirent *ent;
    char childpath[512] = {0};

    pDir = opendir(path.c_str());
    if (!pDir)
        return ret;

    while ((ent = readdir(pDir)) != NULL)
    {
        if (ent->d_type & DT_DIR)
        {
            if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0)
                continue;

            sprintf(childpath, "%s/%s", path.c_str(), ent->d_name);
            if (!FileUtils::removeDirectory(childpath)){
                break;
            }
        }
        else
        {
            std::string str_file = path + "/" + ent->d_name;
            remove(str_file.c_str());
        }
    }
    closedir(pDir);
    remove(path.c_str());
    return ret;
#else
    return false;
#endif
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,214评论 2 33
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,516评论 0 3
  • 从前写论文,导师说,文章题目一忌空,二忌大。今天这篇小文,两个都占完了。哈哈,但是没得人来管我,欧耶,太爽了,自己...
    茹果君阅读 1,725评论 4 10
  • 与其用泪水悔恨昨天,不如用汗水拼搏今天!感恩生活,奋进明天。 1、人生永远没有太晚的开始。因为有明天,今天永远只是...
    Miss微微恩阅读 219评论 0 0