问题标签 [system.io.packaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1962 浏览

com - 无法使用 System.IO.Packaging 确定域的身份

通过 COM 互操作使用 System.IO.Packaging 时,我收到“无法确定域的身份”,有几篇文章描述了为什么会发生这种情况,解决方案是在其自己的 AppDomain 中运行有问题的函数。

所以我采用了示例代码,如下所示,但我仍然收到错误,我想知道我做错了什么,而且,对于 VS 2010,它说 AddAssembly 和 AddHost 已过时 - 我想知道这是否意味着它们不再已实现,但如果是这样的话,我真的不明白如何使用新方法(AddAssemblyEvidence 和 AddHostEvidence)?

0 投票
1 回答
355 浏览

c# - 打包文件无需提取即可读取

在我当前的项目中,我正在处理大量文件(超过数十亿个文件,容量在 1 到 30 KB 之间)作为资源,为我的客户复制它们是一项耗时的工作。我正在寻找一种打包机制,可以帮助我将其中的每一个 1000 或 10000 个打包到一个文件中,从而提高复制速度,因为在这种情况下,我处理的文件数量要少得多;并且从我的应用程序中读取它们在我编写或更改它们时不需要任何提取和压缩(因为分布式应用程序的性能和性质以及在客户端之间共享资源),我已经搜索并且我了解以下 ZIP 库:

  • SharpZipLib
  • 点网邮编
  • System.IO.打包

但似乎上述库需要 - 至少 - 遍历文件才能访问 zip 或包中的文件而无需提取。我需要通过 zip 或包文件中的地址(文件夹结构层次结构)访问文件!以下链接是通过迭代 zip 文件回答的类似问题:

如何从压缩文件中读取数据而无需解压缩整个文件

压缩文件内的内容

有人对此问题有任何想法或解决方案吗?

顺便说一句,我正在用 C# 编码,该项目是基于 Windows 窗体的。

0 投票
1 回答
1482 浏览

asp.net - ASP.Net:system.io.packaging 包“文件包含损坏的数据”

我正在使用 system.io.packaging.package 创建一个包含一些文件的包。目的是创建导入/导出功能。

我这样创建包:

我是这样读的:

包尝试打开文件时出现我的问题

我有一个错误“文件包含损坏的数据”

试了好多遍还是没看懂。。。

编辑:相同的代码正在使用控制台应用程序,但不适用于 Web 应用程序。

0 投票
2 回答
667 浏览

c# - PackageDigitalSignatureManager.VerifySignatures() 会导致网络外的呼叫吗?

在继续处理文档之前,我有一个业务需求来检查 Open Packaging Conventions 包(它是一个 Word 文档)上的数字签名。该包在交付给客户端之前由我签名,因此我的代码需要在运行时验证该文件来自我并且也没有被更改。我有正确执行此操作的工作代码:

PackageDigitalSignatureManager.VerifySignatures()我的问题与被调用时实际发生的情况有关。我担心在证书验证期间会进行 CRL 检查或网络外部的其他调用。我有一些客户在完全无法访问互联网的机器上运行我的应用程序。如果代码依赖于互联网访问,那么它对我来说基本上是一个障碍。

我想知道两件事:

  1. 我的代码会导致 CRL 检查或其他可能导致网络外呼叫的情况吗?
  2. 如果是这样,有没有办法阻止它,或者可能有一种不同的方法来使用不同的机制可靠地验证签名?
0 投票
1 回答
606 浏览

c# - C# - 使用 protobuf 直接写入 zip 文件

我正在开发一个模拟器程序,该程序在文件中频繁(> 10 次)写入小数据(<1kB)。我使用队列来存储这些数据,当这个队列有 300 个或更多成员时,它会将数据写入存储在 zip 文件中的文件并清除队列。

问题是在暂停或停止模拟之后(在这两种情况下flush都会被调用),当我提取 zip 文件并检查输出文件(更具体地说:)时,Offsets.sdo只有最后一步写入的数据(在我的代码中,调用flush)在文件中. 同样在我创建的模拟Zipfile(带outFile字段)的大小为0。

我的文件编写器代码是:

输出是:

前 5 次写入是自动的,最后一次(41 条记录)与模拟暂停有关。

0 投票
1 回答
2428 浏览

java - Android 错误:生成最终存档时出错:java.io.FileNotFoundException:

我最近在 Eclipse 上遇到了这个问题。每当我构建项目时,都会出现此错误:

我一直在网上搜索,我找到了多个答案;但是,这些似乎不起作用。我曾尝试搜索“debug.keystore”文件,但没有找到。我已经多次清理和构建该项目,但仍然没有运气。

对此问题的快速回答将不胜感激。我可以发布您可能对这个问题有任何疑问的任何代码或答案和问题。

0 投票
1 回答
826 浏览

c# - 如何解压/解压使用各种技术压缩/归档的文件 - zip、rar、gzip、tar

对我正在编写的系统的要求意味着我需要确定可能使用多种不同压缩/归档技术(zip、gzip、rar、tar)中的任何一种创建的文件/包的内容。这些文件将位于可以运行任何 Windows 或 Unix/Linux 变体的远程系统上,并且可以使用任何压缩/归档技术创建这些文件(我将确定一个可管理的列表以支持)。

System.IO.Packaging 处理哪些格式 - 只是 zip?

第三方库?这不是我的首选——我需要在未来支持这个系统。

任何指导和建议将不胜感激。

0 投票
1 回答
287 浏览

c# - 打包和分块大目录进行传输

我有一个大约 7 层深的文件夹结构,包含大约 100 万个各种大小和格式的文件。里面所有可以压缩的东西都被压缩了。大约是 350GB。

我想将整个目录推送到云存储中。

我想知道是否有办法将整个目录打包成 tar 或 rar 文件或其他文件,将其分块并发送。然后我可以在云服务中重新创建包(unchunk),然后在需要时解包。并尽快做到这一点。

有没有办法使用System.Io.Packaging例如不尝试压缩目录结构而只是打包它?我认为有 - 但我不知道这是否有效,或者事实上我是否以正确的方式考虑这个问题。

也许有更好的方法将这个大型目录结构推送到云中?

0 投票
0 回答
418 浏览

c# - 如果包托管在网络服务器 (URL) 上,System.IO.Packaging.PackagePart.GetStream() 将不起作用

我有一个托管在网络服务器 (URL) 上的包 (System.IO.Packaging.Package),如果我在网络浏览器中提供包 URL,我可以下载包。

我的要求是从包中提取单个文件(与文件关联的流)而不下载整个包。

System.IO.Packaging 具有允许操作包的类。如果包位于 SMB 共享上,这些类运行良好,但如果包托管在 Web 服务器上,则无法提取文件。

当我调用 PackagePart.GetStream() 方法时它失败,给出一个异常,表示流是只写的,因此无法执行读取操作。我尝试使用传递读/写权限的 Package.Open() 和 PackagePart.GetStream() 方法的重载,但它仍然不起作用。

如果我正确理解堆栈跟踪,MS.Internal.IO.Zip.ZipIOLocalFileBlock._blockManager 中的流实例不知何故没有从 PackagePart.GetStream() 调用传播的权限。

这是一个错误吗?我做错什么了吗?有解决方法吗?我已经苦苦挣扎了两个多星期来解决这个问题,并且没有关于这些类的使用的充足文档。

PS:我已经尝试了一些流行的 Zip 库(SharpZipLib、DontNetZip 和 .NET 4.5 ZipArchive 类),它们都无法实现我的要求。

谢谢你。

0 投票
2 回答
2996 浏览

asp.net - 不允许 Package.Open 请求的注册表访问

我们在 ASP.NET 应用程序中调用 System.IO.Packaging.Package.Open()。此外,在调用它之前已执行 Windows 模拟,因为要打开的包存储在安全位置,并且需要模拟才能读取它。

问题是Package.Open()调用 EventTrace.EasyTraceEvent() ,后者又调用MS.Utility.EventTrace.IsClassicETWRegistryEnabled(),这会引发不允许请求注册表访问的安全异常。

即使在 Web.config 中特别禁用,也会发生这种情况。在调试和发布模式下。

因此我的困境。模拟是必需的,因为文件(包)的存储方式只能由模拟帐户访问。将其复制到不安全的位置会破坏安全性的目的。

授予模拟帐户对注册表的访问权限会在另一个方向上打开一个安全漏洞。除了一组特定的文件和文件夹之外,此帐户没有也不需要访问任何其他系统资源。

我真正想要的是让 EventTrace 从悬崖上飞跃,但我不知道如何告诉它这样做。

有任何想法吗?