当前位置: 首页 > 知识库问答 >
问题:

以编程方式将/system/app/*.apk复制到sdcard

松翔
2023-03-14

我有一个apk的路径“/system/app/gallery2.apk”,我想把它复制到SDCARD上。我实现了复制方法

 public void copy(File src, File dst) throws IOException {
    InputStream in = new FileInputStream(src);
    OutputStream out = new FileOutputStream(dst);

    // Transfer bytes from in to out
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    in.close();
    out.close();
}
 try {
                    File file =new File( pm.getApplicationInfo(TAG_PACKAGE.get(position),PackageManager.GET_META_DATA).publicSourceDir);

                    Toast.makeText(MainActivity.this , pm.getApplicationInfo(TAG_PACKAGE.get(position),PackageManager.GET_META_DATA).publicSourceDir, Toast.LENGTH_LONG).show();

                try {
                    File dir = new File(Environment.getExternalStorageDirectory() + "/foldername/");
                     if(!dir.exists())
                        {
                            if(dir.mkdir()) ;//directory is created;
                            Toast.makeText(MainActivity.this ,dir.toString(), Toast.LENGTH_LONG).show();

                        }

                     copy(file.getAbsoluteFile(), dir);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                } catch (NameNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
  exception java.io.FileNotFoundException: /storage/sdcard0/folder: open failed: EISDIR (Is a directory)

这不起作用了,thnks

共有1个答案

澹台镜
2023-03-14

看起来您正在尝试将文件复制到文件夹中,但没有指定目标文件名。

我猜您想要将文件名附加到目标路径:

copy(file.getAbsoluteFile(), new File(dir, file.getName()));
 类似资料:
  • 问题内容: 由于采用了插件架构,因此我试图以编程方式将bean添加到我的webapp中。我有一个通过注释创建的Spring bean ,并且正在实现接口。 我的覆盖函数如下所示: 基本上,我不知道如何向给setApplicationContext的applicationContext对象添加一个bean。谁能告诉我我将如何处理错误的方法? 好的,这就是我最终得到的解决方案: 问题答案: 在Spri

  • 我有一个基于linux操作系统的自定义嵌入式系统。有摄像头连接到我的系统,我想使用谷歌驱动器作为云存储记录从我的摄像头。 3-然后我使用浏览器访问url,键入授权代码并允许手动身份验证。然后通过另一个HTTP请求获得access_token和refresh_token。 4-之后,我可以成功地使用给定access_token的任何api函数。(如果它过期,我会使用refresh_token刷新它)

  • 我在尝试以编程方式安装apk并在安装后重新启动Android emulator时遇到了一些问题。我指的是这条线。 这是我的代码: 有没有办法安装apk而不启动意图?因为我正在AsyncTask的中执行上述方法。然后在中,我需要显示一个片段,说明安装成功。 然而,对于上面的代码,在调用时,它只是关闭了我的所有片段。

  • 我在Android中初始化了Firebase,而没有使用像这样的google-service插件 现在,在初始化firebase应用程序之后,我如何获得生成的令牌来通过FCM发送推送通知

  • 问题内容: 我直接使用默认的os拨号器通过以下方式创建呼叫: 是否可以直接从我的应用程序启动Skype? 我尝试传递一个数字,如下所示: 传递数字失败。 问题答案: 您需要知道Skype软件包名称(例如com.skype.android),然后才能启动它:

  • 给定一个类: 您可能注意到它没有注释。 我如何使它表现得像有注释,但不添加它? 注释不应在