当前位置: 首页 > 面试题库 >

从档案中打开文件,无需临时提取

田柏
2023-03-14
问题内容

现在,我正在开发一个档案浏览应用程序,该应用程序使用户可以浏览档案内容,提取档案并预览档案中的文件。我正在使用java.util.zipAPI。要预览文件,我暂时将其提取并作为通常的现有文件打开。如您所知,这不是一个好方法,因为如果没有足够的空间进行临时提取,它将无法预览文件。有没有可行的解决方案,可以传递ZipInputStream给,Activity以将其作为文件打开?这个问题还有其他解决方法吗?提前致谢。


问题答案:

原则上,您可以创建一个ContentProvider服务的ZipInputStream

在这个示例项目中,我演示了如何创建一个ContentProvider支持openFile(),该支持使用创建的管道ParcelFileDescriptor.createPipe()来提供文件。createPipe()返回ParcelFileDescriptors表示管道末端的一对(两个元素的数组)。您可以使用数组中的第二个元素通过进行写入OutputStreamopenFile()返回数组中要由Android传递给调用过程的第一个元素。呼叫者将openInputStream()用来读取通过管道传输的内容。

在我的情况下,我正在发送一种资产,该资产上有一个InputStreamvia
AssetManager。在您的情况下,您可以使用ZipInputStream

请注意,我的样例项目假定它正在具有PDF查看器的设备上运行,因为它在没有资源的情况下提供PDF并尝试通过打开startActivity()



 类似资料:
  • 问题内容: 如何在不首先解压缩的情况下打开zip存档中的文件? 我正在使用pygame。为了节省磁盘空间,我将所有图像压缩了。是否可以直接从zip文件加载给定的图像?例如: 问题答案: 文森特·波维尔克(Vincent Povirk)的答案无法完全解决。 您必须在以下位置进行更改: 有关详细信息,请在此处阅读文档。

  • 问题内容: 我有一个Windows实用程序,用于打开Word文档,从其中提取数据并使用该数据生成另一个Word文档。 现在我的问题是,该Windows exe可直接在命令提示符下正常运行,但是如果我通过jenkins调用此exe,即构建步骤“执行Windows批处理命令”,则会出现错误,无法打开Word文档,因此存在实用性错误。 我也尝试过其他选项,例如从pom文件和批处理文件调用exe。每当它给

  • 问题内容: 我编写了一个小模块,该模块首先在目录中找到所有文件,然后合并它们。但是,从目录打开这些文件时遇到问题。我确保我的文件和目录名称正确,并且文件实际上在目录中。 下面是代码。 下面是错误。 问题答案: listdir仅返回文件名:https ://docs.python.org/2/library/os.html#os.listdir您需要完整路径才能打开文件。在打开文件之前,还要检查以确

  • 问题内容: 如何在Linux上将多个存档文件转换为一个大存档文件(使用binutils ar和/或GCC)。 我试图做类似的事情,但它不起作用(结果为空)。 问题答案: 刚在我的机器上尝试过,问题似乎是您需要从归档中提取对象,然后再将它们添加到新的归档中: 像您一样简单地运行ar rcs会生成一个包含两个.a文件的存档,但是工具(例如nm)不愿意深入研究这些文件。

  • 一、简介: 尽管SQLite的数据库是由单一文件构成,然而事实上在SQLite运行时却存在着一些隐含的临时文件,这些临时文件是出于不同的目的而存在的,对于开发者而言,它们是透明的,因此在开发的过程中我们并不需要关注它们的存在。尽管如此,如果能对这些临时文件的产生机制和应用场景有着很好的理解,那么对我们今后应用程序的优化和维护都是极有帮助的。在SQLite中主要产生以下七种临时文件,如: 1). 回