您的位置:首页 > 移动开发 > Android开发

Android复制assets目录下所有文件及文件夹到指定路径

2019-02-09 05:31 3459 查看
版权声明:Copyright WWW.OMEO.TOP © 2016 - 2019 ® All Rights Reserved 版权所有 https://blog.csdn.net/lyk460437762/article/details/86777840
[code]   /**
* 复制assets目录下所有文件及文件夹到指定路径
* @param android.app.Activity mActivity 上下文
* @param java.lang.String mAssetsPath Assets目录的相对路径
* @param java.lang.String mSavePath 复制文件的保存路径
* @return void
*/
public static void copyAssetsFiles(android.app.Activity mActivity,java.lang.String mAssetsPath,java.lang.String mSavePath)
{
try
{
// 获取assets目录下的所有文件及目录名
java.lang.String[] fileNames=mActivity.getResources().getAssets().list(mAssetsPath);
if(fileNames.length>0)
{
// 若是目录
for(java.lang.String fileName:fileNames)
{
java.lang.String newAssetsPath="";
// 确保Assets路径后面没有斜杠分隔符,否则将获取不到值
if((mAssetsPath==null)||"".equals(mAssetsPath)||"/".equals(mAssetsPath))
{
newAssetsPath=fileName;
}
else
{
if(mAssetsPath.endsWith("/"))
{
newAssetsPath=mAssetsPath+fileName;
}

4000
else
{
newAssetsPath=mAssetsPath+"/"+fileName;
}
}
// 递归调用
copyAssetsFiles(mActivity,newAssetsPath,mSavePath+"/"+fileName);
}
}
else
{
// 若是文件
java.io.File file=new java.io.File(mSavePath);
// 若文件夹不存在,则递归创建父目录
file.getParentFile().mkdirs();
java.io.InputStream is=mActivity.getResources().getAssets().open(mAssetsPath);
java.io.FileOutputStream fos=new java.io.FileOutputStream(new java.io.File(mSavePath));
byte[] buffer=new byte[1024];
int byteCount=0;
// 循环从输入流读取字节
while((byteCount=is.read(buffer))!=-1)
{
// 将读取的输入流写入到输出流
fos.write(buffer,0,byteCount);
}
// 刷新缓冲区
fos.flush();
fos.close();
is.close();
}
}
catch(java.lang.Throwable|java.lang.Error|java.lang.Exception e)
{
e.printStackTrace();
}
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐