1

我是 Windows 开发的新手,所以当我问一些真正的基本问题时,我会要求大家多多包涵。我想要一个可以记住上次用户输入的 Windows 应用程序。所以基本上我在想的是我可以接受用户输入并将其写入 XML 文件并在应用程序再次加载时从中读取。但问题是我最终只能分发 .exe 文件。因此,我不能在我的 exe 旁边放置一个 .xml 文件来读取它。我不能使用嵌入式资源,因为我不能写入它。(或者我误解了这个吗?)。那么最好的选择是什么?我知道这个用户输入不会超过 1 行(更具体的是 2 或 3 个单词)。因此,我希望有一个简单的解决方案。

4

4 回答 4

2

将用户输入保存在 XML 文件中确实不会阻止您分发 exe 文件,是吗?如果 XML 文件不存在,请编写代码来创建它,因此当有人第一次执行您的应用程序并输入输入时,将创建 XML 文件并保存输入。

尽管不推荐,但您也可以考虑将这些值保存在 Windows 注册表中。

于 2013-06-11T18:55:00.987 回答
1

如果要存储“某物”,则需要将其存储“某处”。这个“某处”通常是一个数据库、一个文件(txt、xml、...)、Windows 注册表、远程服务器等,这一切都取决于具体的需求。如果你不能,你唯一的选择是使用临时内存集合/对象,但是当你关闭应用程序时它会“消失”。你不能有一个 .exe 文件,它可以自己完成所有的工作。

您不需要为您的应用程序提供多个文件,您可以随时在需要时即时创建它们。只要确保您拥有正确的权限即可。

于 2013-06-11T18:58:13.507 回答
1

好吧,其他答案忽略了为此场景定制的解决方案: 用户设置。将设置文件添加到项目中,并定义您需要的设置;将其范围设置为“用户”,并在需要时定义默认值。然后在您的代码中,使用Properties.Settings.Default.SomeProp.

这种方法允许您为每个用户创建一个持久保存到本地文件系统的数据结构。它还具有可以保留设置的优点,即使您将应用程序更新推送给用户。

于 2013-06-11T19:01:30.730 回答
0

您不需要部署另一个文件。只需创建一个 XMLDocument(称为 xmlDoc),在其中填充信息,然后使用 xmlDoc.Save(myFileName) 编写它。诀窍是保存“myFileName”的位置。通常,Windows 不允许应用程序写入 Program Files 下的任何内容,因此您不能只写入应用程序目录。我的文档通常是保存文件的好地方。做这样的事情:

字符串 myDocumentsFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); string myFileName = string.format(@"{0}\MyAppSettings.txt", myDocumentsFolder"); xmloc.Save(myFileName);

于 2013-06-11T19:01:37.667 回答