Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对用户Visual C隐藏应用程序文件#_C#_.net_Winforms - Fatal编程技术网

C# 对用户Visual C隐藏应用程序文件#

C# 对用户Visual C隐藏应用程序文件#,c#,.net,winforms,C#,.net,Winforms,在客户端计算机上安装应用程序后,如何安全地向用户隐藏程序使用的文件?例如pdf和视频文件。我正在Visual Studio 2013中使用C#和windows窗体。正如Matt所评论的,嵌入式资源是一种方法。请记住,如果您当前正在导航到您的文件(例如c:\MyApp\MyFile.pdf),那么如果您将这些文件更改为嵌入式资源,您将无法再执行此操作 看看这个 您还可以考虑创建一个资源文件(.RESX)并将PDF和视频添加到资源文件中。< P>另一个选项是使用zip 包(参见)。 您可以使用Com

在客户端计算机上安装应用程序后,如何安全地向用户隐藏程序使用的文件?例如pdf和视频文件。我正在Visual Studio 2013中使用C#和windows窗体。

正如Matt所评论的,嵌入式资源是一种方法。请记住,如果您当前正在导航到您的文件(例如c:\MyApp\MyFile.pdf),那么如果您将这些文件更改为嵌入式资源,您将无法再执行此操作

看看这个


您还可以考虑创建一个资源文件(.RESX)并将PDF和视频添加到资源文件中。

< P>另一个选项是使用zip <代码>包<代码>(参见)。 您可以使用
CompressionOption.SuperFast
甚至
CompressionOption.NotCompressed
将文件存储在软件包中,以最大限度地提高性能。您的所有文件都将位于该软件包中,您将能够修改并保存它们。
不幸的是,没有加密或密码保护软件包的选项,如果用户知道文件名并且理解文件扩展名不重要,他或她将能够在ZIP工具(甚至通过浏览器)中“打开”您的软件包。

通过将所有文件转换为shock wave flash文件并对其进行加密,成功地做到了这一点。然后,我可以将文件解密到内存流中,并直接显示在flash播放器中。

查找程序集中的嵌入资源。如果有大量内容,并且您不想用嵌入的资源将程序集填满,则需要查看加密。有很多文件,但如果我对它们进行加密,我必须在每次需要打开文件时解密文件并将其存储在磁盘上,对吗?然后用户可以在我的程序使用它的时候访问它。在大多数情况下,你所要求的是没有完成的。我想不起有哪一款软件会为了隐藏已安装的媒体文件而走极端。他们不希望任何人调试代码,但仅此而已。所以,问题是你为什么要这样做?程序基本上只向用户显示文件。如果他们可以在没有程序的情况下看到文件,那么程序是无用的。如果我在没有程序的情况下出售这些文件,用户可以免费共享它们,而不必购买它们。有很多文件,但如果我对它们进行加密,每次需要打开文件时,我都必须解密一个文件并将其存储在磁盘上,对吗?然后用户可以在我的程序使用时访问它是的,用户仍然可以通过浏览器访问加密文件,但不能直接打开文件。对于嵌入式资源或使用资源文件,这些文件被编译成dll/exe,因此用户无法直接获取它们。“达曼样”的解决方案也是一个很好的考虑。但这仍然意味着用户可以直接访问压缩文件。如果你不介意的话,那可能是个不错的选择。