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

如何知道zip文件在用adb推送后是否已准备好解压缩

燕正卿
2023-03-14

我想使用adb push myfile.zip/data/将一个zip文件推送到我的android设备上,然后在我的应用程序中以编程方式解压缩它。

有没有办法在我解压缩之前确保myfile.zip已经下载到/data/中?

File file = new File("/data/myfile.zip");               
if(file.exists())
    unzip();

有什么建议吗?

共有1个答案

汪志业
2023-03-14

您可以使用FileObserver监视/data/目录,侦听CLOSE_WRITE事件,并确保触发事件的文件是您感兴趣的文件:

FileObserver dataDirObserver = new FileObserver("/data/", FileObserver.CLOSE_WRITE){
    public void onEvent(int event, String path){
        if("/data/myfile.zip".equals(path)){
             unzip();
        }
    }
};


//don't forget to start/stop watching at some point.
public void onPause(){
   super.onPause();
   dataDirObserver.stopWatching(); 
}
public void onResume(){
   super.onPause();
   dataDirObserver.startWatching(); 
}
 类似资料:
  • 我有多个zip文件在一个文件夹和另一个zip文件存在于每一个这些zip文件夹。我想解压第一个和第二个zip文件夹,并创建它们自己的目录。 这是结构 如上所示,在中,我们有多个zip文件,在每个zip文件中,都存在另一个zip文件。我想解压缩,,和到新的文件夹中。我想使用与父zip文件夹相同的名称来放置每个结果。我尝试了以下答案,但这只解压缩第一个文件夹。 顺便说一句,我在Jenkins管道中运行这

  • 我们正在使用firebase云消息将推送通知发送到android应用程序中。 目前,为了测试推送通知,我们需要将消息发送到FCM服务器,并等待消息到达设备。大部分时间设备需要很长时间才能从FCM服务器获得通知。 我可以看到下面的一些链接,这些链接解释了使用adb广播命令向设备发送推送通知(本示例解释了使用GCM框架发送消息,但我们使用的是FCM)是否可以从adb shell/am命令行模拟GCM接

  • 我有一个在Docker中运行的Cassandra,我想在数据库准备就绪时启动一个CQL脚本。我尝试检查端口以检测它何时就绪: 但是在数据库真正准备好之前就打开了端口,因此失败。如何正确检查Cassandra状态并启动脚本?提前道谢。

  • 我一直在寻找这个问题,但我找不到任何我可以使用的回应。 并合并到zip中以进行压缩(根据https://docs.oracle.com/javase/8/docs/api/java/util/zip/ZipOutputStream.html#setMethod-int-,ZipEntry中的DEFLETED)。在这种情况下,如何? 我从谷歌和其他搜索者那里获得的关于用java压缩zip文件的大部分

  • 本文向大家介绍Python压缩解压缩zip文件及破解zip文件密码的方法,包括了Python压缩解压缩zip文件及破解zip文件密码的方法的使用技巧和注意事项,需要的朋友参考一下 python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件: 将 readability 目录中的文件压缩到脚本所在目录的 readability.zip

  • 我想知道是否有标志和参数可以通过单击通知托盘中的推送通知来告诉我用户是否启动了活动/应用程序。 我在 C2DM 接收器中的代码.java 我试着设定 但当该应用程序启动时,其意图中没有额外的内容。 我的mainactivity的onCreate函数中的代码 我得到的输出是onCreate - bundle没有额外的内容。所以多余的部分没有通过。 那么还有其他方法吗?在iOS中很容易