婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Lua中實現遞歸刪除一個文件夾

Lua中實現遞歸刪除一個文件夾

熱門標簽:新岸線智能電銷機器人 地圖標注大廈 清朝地圖標注哈爾濱 冀州市地圖標注 武漢外呼防封系統多少錢 百度地圖標注早餐區域 漳州智云呼電話機器人 個人怎么在地圖標注需要的店鋪 怎么去除地圖標注

在使用 quick-cocos2d-x 做項目熱更新的時候,我需要建立臨時文件夾以保存下載的更新包。在更新完成后,我需要刪除這些臨時文件和文件夾。

cocos2d-x 和 quick-cocos2d-x 都沒有提供刪除文件夾功能。我做了如下2個嘗試:

1. 使用C++

在 cocos2d-x 2.x 中的 AssetsManager 包中提供了一個 CreateDirectory 方法。這個方法可以跨平臺支持創建文件夾。在實際項目中運行沒有問題。

復制代碼 代碼如下:

bool AssetsManager::createDirectory(const char *path)
{
#if (CC_TARGET_PLATFORM != CC_PLATFORM_WIN32)
    mode_t processMask = umask(0);
    int ret = mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO);
    umask(processMask);
    if (ret != 0 (errno != EEXIST))
    {
        return false;
    }

    return true;
#else
    BOOL ret = CreateDirectoryA(path, NULL);
if (!ret ERROR_ALREADY_EXISTS != GetLastError())
{
return false;
}
    return true;
#endif
}


在 cocos2d-x 2.x 的 AssetsManager sample 范例中提供了一個 reset 方法,這個方法使用系統命令遞歸刪除文件夾。
復制代碼 代碼如下:

void UpdateLayer::reset(cocos2d::CCObject *pSender)
{
    pProgressLabel->setString(" ");

    // Remove downloaded files
#if (CC_TARGET_PLATFORM != CC_PLATFORM_WIN32)
    string command = "rm -r ";
    // Path may include space.
    command += "\"" + pathToSave + "\"";
    system(command.c_str());
#else
    string command = "rd /s /q ";
    // Path may include space.
    command += "\"" + pathToSave + "\"";
    system(command.c_str());
#endif
    // Delete recorded version codes.
    getAssetsManager()->deleteVersion();

    createDownloadedDir();
}


但是,這個 reset 在 ios 模擬器中運行的時候,xcode會報這樣的warinng:

The iOS Simulator libSystem was initialized out of order. This is most often caused by running host executables or inserting host dylibs. In the future, this will cause an abort.

因此,我轉而考慮另一個方案。

2. 純lua

純 lua 其實是個噱頭。這里還是要依賴 lfs(lua file sytem),好在 quick-cocos2d-x 已經包含了這個庫。

lfs.rmdir 命令 和 os.remove 命令一樣,只能刪除空文件夾。因此實現類似 rm -rf 的功能, 必須要遞歸刪除文件夾中所有的文件和子文件夾。

讓我們擴展一下 os 包。

復制代碼 代碼如下:

require("lfs")

function os.exists(path)
    return CCFileUtils:sharedFileUtils():isFileExist(path)
end

function os.mkdir(path)
    if not os.exists(path) then
        return lfs.mkdir(path)
    end
    return true
end

function os.rmdir(path)
    print("os.rmdir:", path)
    if os.exists(path) then
        local function _rmdir(path)
            local iter, dir_obj = lfs.dir(path)
            while true do
                local dir = iter(dir_obj)
                if dir == nil then break end
                if dir ~= "." and dir ~= ".." then
                    local curDir = path..dir
                    local mode = lfs.attributes(curDir, "mode")
                    if mode == "directory" then
                        _rmdir(curDir.."/")
                    elseif mode == "file" then
                        os.remove(curDir)
                    end
                end
            end
            local succ, des = os.remove(path)
            if des then print(des) end
            return succ
        end
        _rmdir(path)
    end
    return true
end


上面的代碼在 iOS 模擬器和 Android 真機上測試成功。Windows系統、Mac OSX 以及 iOS 真機還沒有測試。我測試后會立即更新。

您可能感興趣的文章:
  • Lua中的基本語法、控制語句總結
  • Lua簡介、編譯安裝教程及變量等語法介紹
  • LUA中的閉包(closure)淺析
  • 安裝Nginx+Lua開發環境
  • lua實現的2048小游戲
  • Lua教程(二):語法約定
  • Lua教程(三):值與類型介紹
  • ubuntu 14.04下熟悉lua的語法

標簽:德宏 儋州 宣城 金昌 臺灣 天門 天門 濰坊

巨人網絡通訊聲明:本文標題《Lua中實現遞歸刪除一個文件夾》,本文關鍵詞  Lua,中,實現,遞歸,刪除,一個,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua中實現遞歸刪除一個文件夾》相關的同類信息!
  • 本頁收集關于Lua中實現遞歸刪除一個文件夾的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    午夜久久久影院| 91麻豆精品视频| 欧美日韩成人在线一区| 亚洲午夜在线电影| 精品日韩在线观看| 成人av在线电影| 国产日韩欧美精品一区| 99精品欧美一区二区三区小说| 精品sm捆绑视频| 成人av在线电影| 欧美aaaaa成人免费观看视频| 日本一区二区视频在线| 欧美浪妇xxxx高跟鞋交| 99久久久久久| 国产精品亚洲成人| 日本视频免费一区| 亚洲国产精品自拍| 中文字幕视频一区二区三区久| 91精品国产综合久久精品图片| 色婷婷综合久久| 99久久精品久久久久久清纯| 日韩黄色在线观看| 午夜欧美大尺度福利影院在线看| 亚洲丝袜另类动漫二区| 国产午夜亚洲精品羞羞网站| 欧美xingq一区二区| 欧美日韩一区二区三区不卡| 欧美视频一二三区| 欧美日韩精品欧美日韩精品| 欧美日韩黄色影视| 欧美日本精品一区二区三区| 在线观看国产一区二区| 91久久精品日日躁夜夜躁欧美| av亚洲精华国产精华| 99久久99久久免费精品蜜臀| 99久久99久久精品国产片果冻| 不卡的av网站| 色av一区二区| 欧美日本一区二区三区四区| 91精品国产手机| 精品国产污网站| 久久久久久日产精品| 国产精品伦一区| 亚洲视频一二三区| 亚洲午夜羞羞片| 日本成人超碰在线观看| 国产一区久久久| 成人福利视频在线| 色噜噜夜夜夜综合网| 欧美日韩国产综合视频在线观看 | 一二三区精品视频| 婷婷激情综合网| 视频在线在亚洲| 国产在线精品一区二区| 国产a视频精品免费观看| 日韩欧美一区在线| 精品三级在线看| 国产91丝袜在线播放0| 91精品黄色片免费大全| 在线国产电影不卡| 91精品国产综合久久久久久漫画| 久久这里只精品最新地址| 国产精品久线在线观看| 日日夜夜精品视频免费| 国产xxx精品视频大全| 欧美天堂一区二区三区| 久久午夜老司机| 亚洲猫色日本管| 久久成人免费日本黄色| 91老师片黄在线观看| 亚洲精品一区在线观看| 亚洲精品国产第一综合99久久| 久久精工是国产品牌吗| 色视频成人在线观看免| 欧美日本一区二区三区| 国产精品免费人成网站| 奇米影视一区二区三区| 不卡视频在线观看| 久久色.com| 亚洲午夜成aⅴ人片| 国产精品69毛片高清亚洲| 欧美情侣在线播放| 中文无字幕一区二区三区| 亚洲不卡一区二区三区| 成人av在线播放网址| 日韩一区二区三区在线视频| 一区二区三区在线免费视频| 国产一区二区三区免费播放| 欧美精品久久久久久久久老牛影院| 国产精品欧美久久久久无广告 | 国产成人av影院| 日韩欧美国产精品| 日韩精品午夜视频| 色婷婷香蕉在线一区二区| 国产人久久人人人人爽| 麻豆精品在线视频| 3d成人h动漫网站入口| 亚洲午夜久久久久中文字幕久| 豆国产96在线|亚洲| 色综合久久综合网欧美综合网| 国产亚洲综合性久久久影院| 日本欧美在线看| 欧美日韩一区高清| 亚洲一区二区三区四区不卡| 99精品国产热久久91蜜凸| 欧美激情一区二区三区在线| 国产精品一区免费在线观看| 日韩精品一区二区三区视频在线观看| 午夜成人免费电影| 制服.丝袜.亚洲.中文.综合| 午夜电影一区二区三区| 3d动漫精品啪啪一区二区竹菊| 性感美女久久精品| 91精品国产乱码久久蜜臀| 男人的天堂亚洲一区| 日韩午夜激情视频| 国产一区欧美日韩| 国产精品毛片高清在线完整版| 99精品1区2区| 亚洲一区二区三区中文字幕| 欧美午夜精品免费| 日韩高清一区二区| 精品国产成人在线影院| 国产69精品久久久久毛片| 国产精品不卡在线| 在线观看国产91| 日本在线不卡视频一二三区| 欧美成人精精品一区二区频| 国产精品主播直播| 中文字幕一区二区三中文字幕| 日韩制服丝袜先锋影音| 欧美一区二区福利视频| 91久久免费观看| 蜜桃精品视频在线| 欧美激情在线看| 国产成人精品免费| 亚洲国产高清不卡| 欧洲精品一区二区| 日韩电影在线看| 国产色91在线| 99免费精品视频| 日本亚洲三级在线| 最新中文字幕一区二区三区 | 国产欧美一区视频| 91啪九色porn原创视频在线观看| 五月综合激情婷婷六月色窝| 久久久久久久久免费| 日本精品裸体写真集在线观看| 奇米色一区二区| 亚洲免费高清视频在线| 欧美电视剧免费观看| 色狠狠综合天天综合综合| 国产在线精品免费| 日韩av一区二区在线影视| 国产欧美日韩视频在线观看| 欧美女孩性生活视频| 成人app网站| 欧美国产精品一区二区三区| 欧美人与z0zoxxxx视频| av高清久久久| 久久精品国产精品亚洲综合| 亚洲国产视频在线| 国产目拍亚洲精品99久久精品| 欧美欧美欧美欧美首页| 欧美中文字幕一区二区三区亚洲| 激情五月婷婷综合网| 亚洲成人7777| 亚洲摸摸操操av| 国产精品久久久久久久久免费丝袜| 精品国产髙清在线看国产毛片| 91精品国产高清一区二区三区 | 国产午夜精品久久久久久免费视 | 亚洲丝袜精品丝袜在线| 久久久久久久精| 欧美日韩国产精选| kk眼镜猥琐国模调教系列一区二区| 蜜桃精品视频在线| 日韩电影免费在线观看网站| 一区二区三区不卡视频| 亚洲午夜精品17c| 一区二区三区加勒比av| 欧美激情综合五月色丁香小说| 精品日韩在线观看| 精品一区二区三区在线观看国产| 一区二区三区.www| 中文幕一区二区三区久久蜜桃| 国产视频亚洲色图| 91亚洲精品久久久蜜桃| 在线看不卡av| 美国欧美日韩国产在线播放| 狠狠网亚洲精品| 欧美国产激情一区二区三区蜜月| 91免费视频观看| 欧美一区二区三区免费| 国产成人h网站| 亚洲国产欧美在线| 欧美日韩亚洲不卡| 91亚洲精品久久久蜜桃| 男女男精品视频| 国产69精品久久99不卡|