gpt4 book ai didi

c++ - Windows 资源管理器目录作为 bundle

转载 作者:可可西里 更新时间:2023-11-01 09:22:39 27 4
gpt4 key购买 nike

一段时间以来,我一直在研究一种方法来防止我的用户意外进入我的应用程序的数据目录。

我的应用程序使用文件夹来存储结构化项目。文件夹内部结构是关键的,不应该搞砸。我希望我的用户将此文件夹视为一个整体,但无法将其打开(如 Mac bundle )。

有没有办法在 Windows 上做到这一点?

根据当前答案编辑

当然,我并不是要阻止我的用户访问他们的数据,只是要保护他们免于意外破坏数据的完整性。因此不需要加密或密码保护。

感谢大家对 .Net 的回答,但不幸的是,这主要是一个 C++ 项目,对 .Net 框架没有任何依赖。

我说的数据可不简单,是电子显微镜下的图像。这些数据可能很大(~100 MiB 到~1 GiB),因此无法将所有内容加载到内存中。这些是巨大的图像,因此存储必须提供一种通过一次访问一个文件而不将整个存档加载到内存中来增量读取数据的方法。

此外,该应用程序主要是遗留的,其中包含一些我们甚至不负责的组件。允许我保留当前 IO 代码的解决方案是更可取的。

Shell Extension 看起来很有趣,我将进一步研究解决方案。

LarryF,你能详细说明 Filter Driver 或 DefineDOSDevice 吗?我不熟悉这些概念。

最佳答案

您可以做几件事:

一件事是您可以创建一个 FolderView Windows Shell 扩展,它可以为您的关键文件夹创建一个自定义 View 。通过创建自定义 FolderView,您可以使文件夹变成空白,并显示一行文本“此处无内容”,或者您可以做一些更复杂的事情,例如使用相同方法的 GAC 查看器。这种方法会相当复杂,但可以通过使用类似 this CodeProject 的方法来减轻这种复杂性。文章库作为基础。

另一种解决方案是使用 ZIP 虚拟文件系统,这将需要您替换任何直接使用 System.IO 的代码以使用其他东西。 ASP.NET 2.0 就是出于这个确切的原因这样做的,您可以很容易地在此基础上构建,看看这个 MSDN Article关于实现 VirtualPathProvider。

关于c++ - Windows 资源管理器目录作为 bundle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/363760/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com