2016-08-23 2 views
0

Ich kopiere Datei aus Asset-Ordner in Eclipse in Sdcard Genymotion Virtual Device, aber ich habe Fehler: java.io.FileNotFoundException:/storage/emuliert/0/tesseract/tessdata/eng.traineddata: öffnen fehlgeschlagen: ENOENT (Keine solche Datei oder Verzeichnis).öffnen fehlgeschlagen: ENOENT (keine solche Datei oder Verzeichnis) Fehler Datei von Asset auf SdCard kopieren

Bitte helfen Sie mir P/s: Ich wurde WRITE_EXTERNAL_STORAGE in Manifest-Datei hinzugefügt. Dies ist mein Code

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

arbeiten Sie auf Android 6.0? Wenn ja, dann müssen Sie Laufzeit-Erlaubnis geben, oder das – Bhumit

+0

ja, ich arbeite an Android 6.0. – HuynhHan

Antwort

1

verwenden

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

Ihre Lösung funktioniert perfekt. Vielen Dank Sabish.M – HuynhHan

+0

Bitte als Antwort markieren. –

Verwandte Themen