如何将资产中的文件夹复制到内部存储? [英] how to copy folder in asset to internal storage?
问题描述
嗨
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屋!