如何在我的项目中添加文本文件,以便用户看不到它?

时间:2011-01-19 11:19:46

标签: c#

爵士

我正在开发一个应用程序,我将在文本文件中保存一些信息。在执行期间,我希望从/向文件(.txt文件)读/写数据。我不希望文件对用户可见。或者,如果它是可见的,则它必须位于系统的programfile文件夹中,并且用户无法删除该文件的数据。我该怎么办?我试图在资源文件中添加该文件,但无法读取和写入该文件。 PLease帮助我读/写或提供一些其他方法来实现(如上所述)。

提前致谢....

4 个答案:

答案 0 :(得分:1)

你可以使用IsolatedStorage,它不是完全隐藏的,但至少也不容易被发现。

答案 1 :(得分:1)

不要使用ProgramFiles(安装)文件夹: 1.文件将对用户可见 2.如果用户没有管理员权限,您的应用程序将无法修改文件。 Windows System folder也是权利问题。我建议使用系统注册表或appdata文件夹:你可以得到它Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)。您将能够在没有管理员权限的情况下写入该位置。你应该在那里创建一些特殊的子文件夹(不需要,但会很方便)。 或者在注册案例中: 写入注册表:

string myEncrStringToSave;    
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\\Your_Cpecial_Key");
key.SetValue("Software\\Your_Cpecial_Key", myEncrStringToSave);
key.Close();  

从注册表中读取:

Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\\Your_Cpecial_Key");
object value = key.GetValue("Software\\Your_Cpecial_Key");
if (value!=null)
   string myEncryptedString = value.ToString();
key.Close();

Your_Cpecial_Key这里有一些标识符(如哈希表),可让您访问数据。

答案 2 :(得分:0)

将文件放在Windows系统文件夹中,然后从那里使用它。

您可以使用Environment.SpecialFolder.System在不提供完整路径的情况下访问它。

这样用户必须努力工作才能找到该文件,但是如果他确实发现你无法真正阻止他更改它,因为它是运行程序的同一用户。

答案 3 :(得分:0)

我不确定这是否对您有所帮助。 您可以将文本文件作为嵌入式资源,并通过

获得相同的内容
Assembly assm = Assembly.GetExecutingAssembly();
StreamReader aread = new StreamReader(assm.GetManifestResourceStream("Namespace.TextFile1.txt"));

因此用户无法访问,也无法在部署位置使用