2015-04-04 109 views
0

我想從我的應用程序到外部存儲的去包複製我的APK文件:java.io.filenotfoundexeption:/storage/sdcard/app.apk打開失敗EACCES(拒絕)

級副本:

在mainactivity裏面clicklistener我的方法的
package com.pfe.bls; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.nio.channels.FileChannel; 

import android.os.Environment; 

public class Copyapk { 
    public static void copy() throws IOException { 
     String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); 
     String fileName = "app.apk"; 
     FileInputStream inStream = new FileInputStream("/data/data/com.pfe.bls/app.apk"); 
     FileOutputStream outStream = new FileOutputStream(baseDir + File.separator + fileName); 
     FileChannel inChannel = inStream.getChannel(); 
     FileChannel outChannel = outStream.getChannel(); 
     inChannel.transferTo(0, inChannel.size(), outChannel); 
     inStream.close(); 
     outStream.close(); 
    } 

} 

L'APPEL:

btn_createApp.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
    try { 
        Copyapk.copy(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }); 

在Android清單權限

<uses-permission android:name="android.permissions.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="com.android.vending.BILLING" /> 
    <uses-permission android:name="android.permission.MOUNT_FORMAT_FILESYSTEMS" /> 

回答

0

您的數據文件夾存儲在哪裏? 它在外部存儲或應用程序存儲中。從應用程序存儲目錄訪問它,你應該使用使用以下

PackageManager m = getPackageManager(); 
String s = getPackageName(); 
try { 
    PackageInfo p = m.getPackageInfo(s, 0); 
    s = p.applicationInfo.dataDir; 
    } catch (NameNotFoundException e) { 
    Log.w("yourtag", "Error not found ", e); 
    } 
+0

使用一個String作爲您的FileInputStream的放慢參數 – Aakash 2015-04-04 22:03:49

+0

它是在應用程序存儲「com.pfe.bls」 – 2015-04-04 22:22:53

+0

好吧,那麼你應該使用我發佈的代碼。數據目錄的路徑將存儲在可用於fileinputstream的String中。首先嚐試看到String中返回的路徑。 – Aakash 2015-04-04 22:29:54

相關問題