如何将资产中的文件夹复制到内部存储? [英] how to copy folder in asset to internal storage?

查看:101
本文介绍了如何将资产中的文件夹复制到内部存储?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


i想用我的应用程序拍摄一些照片,用户安装后,在第一次运行时,这些文件复制到内部存储,但我不知道我应该把我的照片放在哪里,我试着把它放到资产文件夹但是现在我无法将其复制到内部存储空间。

i尝试此代码:



  class  bgTask  extends  AsyncTask 
{

@Override
protected 对象doInBackground(Object [] params){
字符串 src = file:/// android_asset / images;
字符串 dst = Environment.getExternalStorageDirectory()。toString()+ / 123 /;
文件s =新文件(src);
文件d =新文件(dst);
尝试 {
FileUtils.copyDirectory(s,d);
} catch (IOException e){
e.printStackTrace();
}

return null;
}
}
new bgTask()。execute();



但是我收到了这个错误:



05-17 11:26:55.455 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:java.io .FileNotFoundException:Source'file:/ android_asset / images'不存在

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at org.apache .commons.io.FileUtils.copyDirectory(FileUtils.java:1368)

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at org.apache .commons.io.FileUtils.copyDirectory(FileUtils.java:1261)

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at org.apache .commons.io.FileUtils.copyDirectory(FileUtils.java:1230)

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at mohammadi.behnam .telegramsticker.MainActivity $ 1bgTask.doInBackground(MainActivity.java:60)
05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at android.os.AsyncTask $ 2.call(AsyncTask.java:287)

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at java.util.concurrent.FutureTask.run(FutureTask.java:234)

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:230)

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)

05 -17 11:26:55.465 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:573)

05 -17 11:26:55.465 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at java.lang.Thread.run(Thread.java:841)

解决方案

1bgTask.doInBac kground(MainActivity.java:60)

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at android.os.AsyncTask


2.call(AsyncTask.java:287)

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at java。 util.concurrent.FutureTask.run(FutureTask.java:234)

05-17 11:26:55.460 16182-16250 / mohammadi.behnam.telegramsticker W / System.err:at android.os。的AsyncTask

SerialExecutor

hi i wanna take some pictures with my app the after user install that in first run those files copy to internal storage but i don't know where should i put my pictures i try to put it into Asset folder but now i can't copy that into internal storage.
i try this code:

class bgTask extends AsyncTask
        {

            @Override
            protected Object doInBackground(Object[] params) {
                String src="file:///android_asset/images";
                String dst=Environment.getExternalStorageDirectory().toString() +"/123/";
                File s=new File(src);
                File d=new File(dst);
                try {
                    FileUtils.copyDirectory(s, d);
                } catch (IOException e) {
                    e.printStackTrace();
                }

                return null;
            }
        }
new bgTask().execute();


but i got this error:

05-17 11:26:55.455 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ java.io.FileNotFoundException: Source 'file:/android_asset/images' does not exist
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1368)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1261)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1230)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at mohammadi.behnam.telegramsticker.MainActivity$1bgTask.doInBackground(MainActivity.java:60)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-17 11:26:55.465 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-17 11:26:55.465 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at java.lang.Thread.run(Thread.java:841)

解决方案

1bgTask.doInBackground(MainActivity.java:60)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at android.os.AsyncTask


2.call(AsyncTask.java:287)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-17 11:26:55.460 16182-16250/mohammadi.behnam.telegramsticker W/System.err﹕ at android.os.AsyncTask


SerialExecutor


这篇关于如何将资产中的文件夹复制到内部存储?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆