【问题标题】:box with files, which cannot be seen from Windows带有文件的框,无法从 Windows 中看到
【发布时间】:2012-02-12 11:49:55
【问题描述】:

您好,有什么方法可以创建一个从 Windows 看不到的盒子吗?我想在这个框中插入一些文件。这些文件应该只能通过我的应用程序访问,而不是从 Windows 访问。提前谢谢你。

【问题讨论】:

  • 它可以是文件夹,但是这个文件夹应该不能从 Windows 访问,而只能从应用程序访问。这可能吗?
  • 您无法创建“盒子”。它必须是一个文件夹。此外,除了卸载 Windows 之外,无法保证 Windows 不会访问这些文件。
  • 嗯。我想创建无法直接从 Windows 访问的文件夹。用户应该使用我的应用程序来访问这些文件。可惜我做不到。感谢您的帮助
  • 这样做的原因是什么?你为什么要隐藏文件?

标签: c# .net windows


【解决方案1】:

您需要多少文件以及如何访问它们?如果它们仅用于阅读并且您没有太多,您始终可以选择将它们作为资源存储在您的项目中。查看 MSDN 上的 this link,了解如何在程序集中直接存储各种文件类型。

注意:如果您计划存储密码或安全敏感数据,则不应使用此方法。

另一种选择是将文件存储在数据库中。如果您要使用诸如SQLite (here is the .Net data provider) 之类的东西,Windows 将可以访问数据库文件,但不能访问数据库中包含的文件(可以加密)。根据您的数据,您必须将文件信息存储为二进制大对象 (blob)。有关如何执行此操作的示例,请参阅 here

【讨论】:

  • @cotablise:没问题。祝你好运!
【解决方案2】:

这取决于您想要的抽象层。应用程序创建的所有文件都可以在某种程度上由 Windows 访问,但是,您可以屏蔽这些文件的内容(即加密它们)。

一般来说,您仍然可以将文件存储在文件夹中,并应用加密。这是msdn article 的重点。另一个问题是您将用于加密的密钥存储在哪里。

一个简单的解决方案是将密钥硬编码到某个变量中。但是,如果对程序集进行反编译,则密钥将变得明显。另一方面,如果您希望创建文件的用户成为唯一可以访问文件的用户,则可以使用Data Protection API

【讨论】:

    【解决方案3】:

    如果您的问题是如何隐藏该框,那么无论您对此“框”使用什么控件,都可以将“可见”属性设置为 false。

    【讨论】:

    • 问题是我不知道如何创建盒子或类似的东西,我可以在其中插入文件。我不想只更改 windows 文件夹的属性。我想创建类似文件夹的东西,但是这个文件夹应该不能从 Windows 访问,而只能从应用程序访问。这可能吗?
    【解决方案4】:

    如果您的盒子不包含很多文件或不是很大的文件,您可以尝试将其保存在 .zip 等压缩文件中并为其添加密码。还要在该框上添加 hidden 属性。

    【讨论】:

    • 但是这个 ZIP 可以从 Windows 访问。我试图找出,我是否可以创建一些无法直接从 Windows 访问的东西。用户必须使用我的应用程序才能访问这些文件。
    猜你喜欢
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多