android assets list,Android getAssets().list python文件树脚本

我的android应用程序中的getAssets().list太慢。我有将近3000个文件,在一些设备上,只需要几分钟就可以得到所有的文件名。

所以,我想用python脚本创建一个json文件,里面有文件树,从特定子目录中查找所有文件和目录(名称)一定很容易。你知道吗

因此,没有json的默认实现是这样的:public String[] listAssets(String path) throws IOException {

return getAssets().list(path);

}

现在我必须使用加载的json文件树来查找特定路径的内容

下面是一个python脚本:import os

import json

path = "/Users/xxx/somepath"

def path_to_dict(path):

d = {'name': os.path.basename(path)}

if os.path.isdir(path):

d['type'] = "directory"

d['children'] = [path_to_dict(os.path.join(path,x)) for x in os.listdir\

(path)]

else:

d['type'] = "file"

return d

with open("tree.json", "w") as tf:

tf.write(json.dumps(path_to_dict(path)))

脚本取自stackoverflow。现在,我有一个问题如何解析它:public String[] listAssets(String path) throws IOException {

//return getAssets().list(path);

try {

JSONArray assets = fileTree.getJSONArray("children");

if (path.equals("")) { //asking for root dir

String[] names = new String[assets.length()];

for(int i = 0; i < assets.length(); i++){

names[i] = assets.getJSONObject(i).getString("name");

}

return names;

}

else { //same subdirectory

String[] parts = path.split(Pattern.quote("/"));

JSONArray array = findSubdirectory(parts, 0, assets);

String[] names = new String[array.length()];

for(int i = 0; i < array.length(); i++){

names[i] = array.getJSONObject(i).getString("name");

}

return names;

}

}

catch (Exception e){

e.printStackTrace();

}

return null;

}

我用“/”来分割路径,并且必须以某种方式遍历所有子目录并递归地找到正确的子目录,但是我不知道如何实现这个“findSubdirectory”方法。你知道吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值