Öğeleri bir dosyadan dış depolama birimine kopyalamam gerekiyor. İşte benim kodudur:Harici depolama biriminde yeni dosya oluşturulduğunda izin reddedildi
File f = new File(Environment.getExternalStorageDirectory() + File.separator
+ "MyApp" + File.separator + "tessdata" + File.separator + "eng.traineddata");
if (!f.exists()) {
AssetManager assetManager = getAssets();
try {
f.createNewFile();
InputStream in = assetManager.open("eng.traineddata");
OutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory() + File.separator
+ "MyApp" + File.separator + "tessdata" + File.separator + "eng.traineddata");
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1)
out.write(buffer, 0, read);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch (IOException e) {
Log.e("tag", "Failed to copy asset file: ", e);
}
}
Ben de "İzin verilmedi" diyerek f.createNewFile()
yürütüldüğünde durum oluştu manifet
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
izne ekledik.
Nasıl düzeltebilirim lütfen? EDIT - -
private void copy() {
File dirOri = new File(Environment.getExternalStorageDirectory() +"/somefolder/somefile");
File dirDest = new File(Environment.getExternalStorageDirectory() + "/yourfolder");
FileChannel src = null;
FileChannel dst = null;
try {
src = new FileInputStream(dirOri).getChannel();
dst = new FileOutputStream(dirDest).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
} catch (Exception e) {}
}
manifest'te ekleyin::
Uygulama direktifini kullanırsanız ne olur? 'Dosya f = yeni Dosya (getExternalFilesDir (null)," eng.traineddata ");' – rciovati
Cihazınız bir PC'ye bağlı ve Yığın Depolama moduna ayarlanmış mı? Ya da başka bir şekilde bağlanmamış durumda? Öyleyse, harici dosya sistemine erişemez. – FoamyGuy