配合CocosCreator发布新版本,分享一个json格式的文件列表工具

配合CocosCreator发布新版本v0.7,提供了这么好的编辑器,我也分享一个json格式的文件列表工具。
python写的,可以根据自己需求任意修改代码

#!/usr/bin/python2.7
# -*- coding: utf-8 -*-

# author: 良辰
# email: 521401@qq.com
# time: 2016-01-20 13:02:07
# 功能:热更新用的,json文件列表

import hashlib
import os,sys
import json
from collections import OrderedDict
import codecs

# 版本号,数字
versionCode = 1
# 版本标识
versionName = "1.0.0"
# 下载地址
downUrl = "http://127.0.0.1/"

outFile = "file.txt"

print u"开始生成热更新json文件,请稍等..."

alldata = {}
alldata'versionCode'] = versionCode
alldata'versionName'] = versionName
alldata'dirPaths'] = {}
alldata'fileInfoList'] = {}


# 获取文件md5接口
def GetFileMd5(filename):
    if not os.path.isfile(filename):
        return
    myhash = hashlib.md5()
    f = file(filename,'rb')
    while True:
        b = f.read(8096)
        if not b :
            break
        myhash.update(b)
    f.close()
    return myhash.hexdigest()


# 获取所有文件
fdir="./" #当前路径
expSuffix = ".exe .py .svn" #这些后缀不加入文件列表
expFile = "version.txt" #不加入列表的文件

arrFolder = ] #文件夹列表
arrFileList = ] #文件列表

# 列出目录下的所有文件和目录
def ListFilesToDirt(curdir):
  files = os.listdir(curdir)
  for name in files:
    fullname=os.path.join(curdir,name)
    exts = expSuffix.split(" ")
    if (os.path.isdir(fullname)):
      if name == ".svn":
        break
      if name == ".git":
        break
      jname = fullname
      jname = jname.replace("\\", "/")
      tmp = {}
      tmp'name'] = jname
      arrFolder.append(tmp)
      ListFilesToDirt(fullname)
    else:
      isnext = True
      for ext in exts:
        if(name.endswith(ext)):
          isnext = False
          break
      if outFile == name or expFile == name: #输出文件不加入列表
        isnext = False
        pass
      if isnext:
        jname = fullname
        jname = jname.replace("\\", "/")
        # jname = unicode(jname, 'gbk') #window版本上这样写
        tmp = {}
        tmp'name'] = jname
        tmp'code'] = GetFileMd5(fullname)
        tmp'size'] = os.path.getsize(fullname)
        arrFileList.append(tmp)
        pass

ListFilesToDirt(fdir)

file = codecs.open(outFile, 'w', 'utf-8')

alldata'dirPaths'] = arrFolder
alldata'fileInfoList'] = arrFileList


print u"文件夹个数:",len(arrFolder), u"\t\t\t文件个数:",len(arrFileList)
print u"ok 成功生成文件md5验证文件,输出路径:",outFile

file.write(json.dumps(alldata,sort_keys=True))
file.close()

# 版本号
version = {}
version'versionCode'] = versionCode
version'versionName'] = versionName
version'downUrl'] = downUrl

file = codecs.open("version.txt", 'w', 'utf-8')
file.write( json.dumps(version, sort_keys=True) )
file.close()




PS: cocos creator真是甩cocostudio几条街啊,谁用谁知道!

可以用 nodejs 写一个直接做成插件