2012-02-12 131 views
3

美好的一天,有没有任何选项可以创建一个从Windows无法看到的文件夹?我想插入一些文件到这个盒子里。这些文件只能通过我的应用程序访问,而不能从Windows访问。先谢谢你。包含文件的文件夹,无法从Windows中看到

+3

框中,你是指文件夹? – xbonez 2012-02-12 11:54:34

+0

它可以是文件夹,但不应该从Windows访问此文件夹,但只能从应用程序访问。那可能吗? – cotablise 2012-02-12 12:16:26

+1

你不能创建一个'盒子'。它必须是一个文件夹。此外,没有办法保证Windows不会访问这些文件 - 不能卸载窗口。 – xbonez 2012-02-12 12:19:41

回答

5

有多少个文件,你如何访问它们?如果他们只是为了阅读而没有太多,你总是可以选择将它们作为资源存储在你的项目中。查看MSDN上的this link,了解如何直接在组件中存储各种文件类型。

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

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

+0

超级,谢谢你的想法和链接 – cotablise 2012-02-12 13:22:05

+0

@cotablise:没问题。祝你好运! – 2012-02-12 14:05:08

0

如果你的问题是如何隐藏盒子,那么你可以设置“Visible”属性为false,而不管这个“盒子”使用什么样的控件。

+0

问题是我不知道如何创建盒子或类似的东西,我可以插入文件。我不想只改变Windows文件夹的属性。我想创建类似文件夹的文件夹,但不应该从Windows访问此文件夹,而只能从应用程序访问。那可能吗? – cotablise 2012-02-12 12:15:37

0

如果您的包装箱中不包含大量文件或不包含大文件,您可以尝试将其保存在压缩文件中,如.zip并为其添加密码。还要在该框上添加隐藏属性。

+0

但是这个ZIP将可以从Windows访问。我试图找出是否可以创建一些无法直接从Windows访问的内容。用户必须使用我的应用程序才能访问这些文件。 – cotablise 2012-02-12 12:24:14

1

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

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

一个简单的解决方案是在某些变量中对密钥进行硬编码。但是,如果程序集反编译,密钥将变得明显。另一方面,如果您希望创建文件的用户开始使用,那么只能访问这些文件,那么您可以使用Data Protection API

+0

不错,谢谢你的建议和链接... – cotablise 2012-02-12 13:20:59

相关问题