文件操作

 1.assets裏的東西拷貝到sd卡里或拷貝到/data/data/包名

  1. // assets裏的東西拷貝到sd卡里、拷貝到/data/data/包名 不可用 .zip格式的可用 
  2.     //                                              解決:把.zip拷貝到/data/data/包名 在解壓 
  3.     //dir沒用到、assetDir拷貝到此目錄 
  4.     private void CopyAssets(String assetDir, String dir) { 
  5.         String[] files; 
  6.         try { 
  7.             files = this.getResources().getAssets().list("");//得到assets下所有目錄 
  8.         } catch (IOException e1) { 
  9.             return
  10.         } 
  11.  
  12.         File mWorkingPath = new File(assetDir);//assets東西拷貝到mWorkingPath裏 
  13.          
  14.         /*不存在路徑創建、創建*/ 
  15.         if (!mWorkingPath.exists()) { 
  16.             if (!mWorkingPath.mkdirs()) { 
  17.             } 
  18.         } 
  19.  
  20.         for (int i = 0; i < files.length; i++) { 
  21.             try { 
  22.                 String fileName = files[i]; 
  23.                  
  24.                 /*目錄裏嵌套目錄情況、*/ 
  25.                 // if (!fileName.contains(".")) { 
  26.                 // if (0 == assetDir.length()) { 
  27.                 // CopyAssets(fileName, dir + fileName + "/"); 
  28.                 // } else { 
  29.                 // CopyAssets(assetDir + "/" + fileName, dir + fileName 
  30.                 // + "/"); 
  31.                 // } 
  32.                 // continue; 
  33.                 // } 
  34.                  
  35.                 File outFile = new File(mWorkingPath, fileName); 
  36.                 if (outFile.exists()) {// mWorkingPath裏已經存在fileName文件 
  37.                     break
  38.                     // outFile.delete();//刪除以前的 
  39.                 } 
  40.  
  41.                 /*fileName assets裏的文件名、outFile輸出的目錄+文件名(fileName)*/ 
  42.                 InputStream in = null
  43.                 if (0 != assetDir.length()) { 
  44.                     // in = getAssets().open(assetDir + "/" + fileName); 
  45.                     in = getAssets().open(fileName); 
  46.                 } else { 
  47.                     in = getAssets().open(fileName); 
  48.                 } 
  49.  
  50.                 OutputStream out = new FileOutputStream(outFile); 
  51.                 byte[] buf = new byte[1024]; 
  52.                 int len; 
  53.                 while ((len = in.read(buf)) > 0) { 
  54.                     out.write(buf, 0, len); 
  55.                 } 
  56.  
  57.                 in.close(); 
  58.                 out.close(); 
  59.             } catch (FileNotFoundException e) { 
  60.                 e.printStackTrace(); 
  61.             } catch (IOException e) { 
  62.                 e.printStackTrace(); 
  63.             } 
  64.         } 
  65.  
  66.     } 

 

2.獲得assets下的所有文件名

  1. private Context mContext = (Context) MediaActivity.sMediaActivity; //
  2.  
  3. /* 獲得assets下的資源列表 */ 
  4.         String[] files; 
  5.         files = this.mContext.getResources().getAssets().list(""); 
  6.         for (int i = 0; i < files.length; i++) { 
  7.             System.out.println(" length length  " + files[i]); 
  8.             File fileM = new File(files[i]); //檢查不到Assets的文件是否存在 
  9.             if (!fileM.exists()) 
  10.                 System.out.println(" not exits  "); 
  11.         } 

 

3.分別到sdcard 和assets裏查找文件沒有此文件拋出異常 

  1. public static String getSDPath(String fileName) { 
  2.  
  3.         System.out.println(" data/adc.pngadc.png adc.png  not exits  " 
  4.                 + fileName); 
  5.         File file = Environment.getExternalStorageDirectory(); 
  6.         String sdPath = file.getAbsolutePath(); 
  7.         String picPath = sdPath + "/all/" + fileName; 
  8.  
  9.         File fileM = new File(picPath); 
  10.         if (!fileM.exists()) { 
  11.             System.out.println(" data/adc.pngadc.png2 adc.png  not exits  "); 
  12.             AssetManager am = PathStatic.mContext.getAssets(); 
  13.             try { 
  14.                 am.open(fileName); 
  15.                 System.out 
  16.                         .println(" data/adc.pngadc.png 1adc.png  not exits  "); 
  17.                 return fileName; 
  18.             } catch (IOException e) { // assets文件不存在 
  19.                 System.out 
  20.                         .println(" data/adc.pngadc.png0 adc.png  not exits  "); 
  21.                 // MediaStatic.noMovieFile(); 
  22.                 e.printStackTrace(); 
  23.                 return ""
  24.             } 
  25.         } 
  26.  
  27.         return picPath; 
  28.     } 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章