2016-08-23 4 views
0

EclipseのAssetフォルダからSdcard Genymotion仮想デバイスにファイルをコピーしましたが、エラーが発生しました: java.io.FileNotFoundException:/ storage /エミュレート/ 0/tesseract/tessdata/eng.traineddata:オープンに失敗しました:ENOENT(そのようなファイルまたはディレクトリはありません)。open failed:ENOENT(そのようなファイルやディレクトリはありません)エラーAssetからSdCardにファイルをコピー

助けてください P/s:マニフェストファイルにWRITE_EXTERNAL_STORAGEが追加されました。 これは

AssetManager assetManager = getActivity().getAssets(); 
    File file = new File(Environment.getExternalStorageDirectory() 
      + "/tesseract/tessdata", lang + ".traineddata"); 
    if (!(file.exists())) { 
     try { 
      InputStream in = assetManager.open("tessdata/" + lang 
        + ".traineddata"); 
      String sdCardPath = Environment.getExternalStorageDirectory() 
        + "/tesseract/tessdata"; 
      File outFile = new File(sdCardPath + "/", lang + ".traineddata"); 
      OutputStream out = new FileOutputStream(outFile); 
      copyFile(in, out); 
      in.close(); 
      in = null; 
      out.flush(); 
      out.close(); 
      out = null; 
     } catch (IOException e) { 
      Log.e("tag", "Failed to copy asset file: " + lang 
        + ".traineddata", e); 
     } 
    } 
+0

あなたは、Android 6.0に取り組んでいる私のコードですか?はいの場合、実行時許可を与える必要があります。 – Bhumit

+0

はいAndroid 6.0を使用しています。 – HuynhHan

答えて

1

使用この

AssetManager assetManager = getActivity().getAssets(); 
    File file = new File(Environment.getExternalStorageDirectory() 
      + "/tesseract/tessdata", lang + ".traineddata"); 
    if (!(file.exists())) { 
     try { 
      InputStream in = assetManager.open("tessdata/" + lang 
        + ".traineddata"); 
      String sdCardPath = Environment.getExternalStorageDirectory() 
        + "/tesseract/tessdata"; 
      new File(sdCardPath).mkdirs(); 
      File outFile = new File(sdCardPath + "/", lang + ".traineddata"); 
      OutputStream out = new FileOutputStream(outFile); 
      copyFile(in, out); 
      in.close(); 
      in = null; 
      out.flush(); 
      out.close(); 
      out = null; 
     } catch (IOException e) { 
      Log.e("tag", "Failed to copy asset file: " + lang 
        + ".traineddata", e); 
     } 
    } 
+0

あなたのソリューションは完璧に動作します。あまりにもSabish.M – HuynhHan

+0

ありがとうございます。回答としてマークしてください。 –

関連する問題