爵士
我正在开发一个应用程序,我将在文本文件中保存一些信息。在执行期间,我希望从/向文件(.txt文件)读/写数据。我不希望文件对用户可见。或者,如果它是可见的,则它必须位于系统的programfile文件夹中,并且用户无法删除该文件的数据。我该怎么办?我试图在资源文件中添加该文件,但无法读取和写入该文件。 PLease帮助我读/写或提供一些其他方法来实现(如上所述)。
提前致谢....
答案 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"));
因此用户无法访问,也无法在部署位置使用