1.assets裏的東西拷貝到sd卡里或拷貝到/data/data/包名
- // assets裏的東西拷貝到sd卡里、拷貝到/data/data/包名 不可用 .zip格式的可用
- // 解決:把.zip拷貝到/data/data/包名 在解壓
- //dir沒用到、assetDir拷貝到此目錄
- private void CopyAssets(String assetDir, String dir) {
- String[] files;
- try {
- files = this.getResources().getAssets().list("");//得到assets下所有目錄
- } catch (IOException e1) {
- return;
- }
- File mWorkingPath = new File(assetDir);//assets東西拷貝到mWorkingPath裏
- /*不存在路徑創建、創建*/
- if (!mWorkingPath.exists()) {
- if (!mWorkingPath.mkdirs()) {
- }
- }
- for (int i = 0; i < files.length; i++) {
- try {
- String fileName = files[i];
- /*目錄裏嵌套目錄情況、*/
- // if (!fileName.contains(".")) {
- // if (0 == assetDir.length()) {
- // CopyAssets(fileName, dir + fileName + "/");
- // } else {
- // CopyAssets(assetDir + "/" + fileName, dir + fileName
- // + "/");
- // }
- // continue;
- // }
- File outFile = new File(mWorkingPath, fileName);
- if (outFile.exists()) {// mWorkingPath裏已經存在fileName文件
- break;
- // outFile.delete();//刪除以前的
- }
- /*fileName assets裏的文件名、outFile輸出的目錄+文件名(fileName)*/
- InputStream in = null;
- if (0 != assetDir.length()) {
- // in = getAssets().open(assetDir + "/" + fileName);
- in = getAssets().open(fileName);
- } else {
- in = getAssets().open(fileName);
- }
- OutputStream out = new FileOutputStream(outFile);
- byte[] buf = new byte[1024];
- int len;
- while ((len = in.read(buf)) > 0) {
- out.write(buf, 0, len);
- }
- in.close();
- out.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
2.獲得assets下的所有文件名
- private Context mContext = (Context) MediaActivity.sMediaActivity; //
- /* 獲得assets下的資源列表 */
- String[] files;
- files = this.mContext.getResources().getAssets().list("");
- for (int i = 0; i < files.length; i++) {
- System.out.println(" length length " + files[i]);
- File fileM = new File(files[i]); //檢查不到Assets的文件是否存在
- if (!fileM.exists())
- System.out.println(" not exits ");
- }
3.分別到sdcard 和assets裏查找文件沒有此文件拋出異常
- public static String getSDPath(String fileName) {
- System.out.println(" data/adc.pngadc.png adc.png not exits "
- + fileName);
- File file = Environment.getExternalStorageDirectory();
- String sdPath = file.getAbsolutePath();
- String picPath = sdPath + "/all/" + fileName;
- File fileM = new File(picPath);
- if (!fileM.exists()) {
- System.out.println(" data/adc.pngadc.png2 adc.png not exits ");
- AssetManager am = PathStatic.mContext.getAssets();
- try {
- am.open(fileName);
- System.out
- .println(" data/adc.pngadc.png 1adc.png not exits ");
- return fileName;
- } catch (IOException e) { // assets文件不存在
- System.out
- .println(" data/adc.pngadc.png0 adc.png not exits ");
- // MediaStatic.noMovieFile();
- e.printStackTrace();
- return "";
- }
- }
- return picPath;
- }