android从包中获取文件列表
我如何获得android从包中获取文件列表,android,android-resources,Android,Android Resources,我如何获得.json配置文件的所有列表,这些文件不在SD卡上,而是在我的包中?下图显示了我想要访问的文件夹中的文件。其思想如下:当应用程序启动时,我希望获得配置文件的列表、路径,并将其显示给测试人员,以选择连接到哪个服务器。我该怎么做?我正在寻找PackageManager和AssetManager,但没有结果 当我将文件夹配置放在文件夹资产中时,这段代码会给我一个可用配置的列表,但是我如何才能获得它们的完整路径来读取它们呢 AssetManager am = getAssets(); Stri
.json
配置文件的所有列表,这些文件不在SD卡上,而是在我的包中?下图显示了我想要访问的文件夹中的文件。其思想如下:当应用程序启动时,我希望获得配置文件的列表、路径,并将其显示给测试人员,以选择连接到哪个服务器。我该怎么做?我正在寻找PackageManager
和AssetManager
,但没有结果
当我将文件夹配置放在文件夹资产中时,这段代码会给我一个可用配置的列表,但是我如何才能获得它们的完整路径来读取它们呢
AssetManager am = getAssets();
String s = getPackageName();
Resources tmp = pm.getResourcesForApplication(s);
String [] arr = am.list("configs2");
要做类似的事情,我使用了以下命令:
InputStream is=context.getResources().openRawResource(R.raw.raw\u数据文件)代码>
其中文件raw\u data\u file
位于路径res/raw/raw\u data\u file.txt
中。然后可以像平常一样使用InputStream读取文件。我相信您可以在文件所在的位置执行类似的操作,但通常我会将所有资源放在res(ources)
文件夹中,我最终解决了我的问题。这是我的项目结构:
若要从应用程序包中获取文件列表,需要将所有要获取的文件放入“资产”文件夹。代码如下:
私有ArrayList getPackageConfigList()
{
AssetManager am=getAssets();
字符串[]arr=null;
尝试
{
arr=am.list(文件夹);
}
catch(IOE异常){e.printStackTrace();}
}
谢谢我可以从当前位置的“configs”文件夹中获取文件吗?请尝试am.open(configs/fileName)
,它会再次返回InputStream,很高兴您解决了问题!虽然不建议将其作为字节缓冲区读入,但使用BufferedReader更安全:BufferedReader reader=new BufferedReader(new InputStreamReader(input\u stream))
然后使用reader.readLine()
ArrayList<String> flist = new ArrayList<String>();
for (int i=0; i<arr.length; i++)
{
flist.add(PKG + arr[i]);
Log.d(tag, PKG+ arr[i]);
}
return flist;
}
try
{
//open file, read to buffer, convert to string
in = am.open(folder + "/" + fileName);
int size = in.available();
byte[] buffer = new byte[size];
in.read(buffer);
in.close();
result = new String(buffer);
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
try
{
in.close();
}
catch(Exception ex){}
}
return result;