基本上,我有我的应用程序内的文本文件(在应用程序的属性的资源选项卡)。
现在,我试图读写该文件,阅读的作品就好了,这是一个的给我的问题写作部分。
我使用的是dim str as string = my.resources.textfile
,它的工作原理。
现在,我试图用my.resources.textfile = str2
,这给了我一个错误,说明该文件是只读的。
如何解决此问题?
注:我不喜欢写文件到用户的PC,因为它不是一个大量的数据需要被写入并因为它看起来稍微不专业(在我眼里),所以我更喜欢的方式来做到这一点没有写文件到用户的PC。
当它包含1行文本的只是一个小小的文本文件,它是一种它被写入到不同的文件的浪费。
为什么会是这样一种“浪费”? 这就是看它一个奇怪的方式。 如果它是值得写在首位的文件,它的价值将其写入到一个单独的文件。
像雅各布说,在评论,修改可执行文件本身是一个完全不平凡的任务。 获取代码的工作来实现这一目标将是真正的浪费。 这假设你可以像过去的病毒扫描程序,公司政策,或基本代码审查代码。
我不喜欢写文件到用户的PC,因为它不是一个大量的数据需要被写入并因为它看起来不专业一点点(在我眼里),所以我更喜欢的方式来做到这一点没有写一个文件用户的PC。
你有正确的本能担心这一点,但是在这种特殊情况下的担心是多余的。 这确实是外行写文件到用户的桌面,或文件夹,甚至是硬盘的根目录下。 这些地方要么完全属于用户或系统,甚至如果你能成功地给他们写信(UAC会打你的磁盘的根目录下所有的方式),你不应该。 ( 等等等等等等,我以前咆哮这一点。 )
相反,使用的目的是出于这样的目的Application Data文件夹。 你保证具有读/写权限到该位置,并没有正常的用户曾经看起来有那么他们将不会看到任何你折腾的东西。谁看有异常的用户希望看到这种东西存储在那里。
唯一可能的错误,你可以做将是硬编码的路径,这样的文件夹中。 不这样做,它改变了从一台机器到下一个位置。 相反,使用Environment.GetFolderPath
方法来检索它的位置。 该函数采用一个Environment.SpecialFolder
值,其中有一个疯狂数。 你感兴趣的用于此目的的三个是:
-
ApplicationData
,这是用来存储要与用户的账号漫游应用程序数据(即去的帐户登录时使用的设备) -
LocalApplicationData
,这是用来存储不应该与用户的账号漫游应用程序数据(即只有当前本地机器上留下) -
CommonApplicationData
,其被用于存储通用于所有的用户(即,非用户特定的)的应用程序数据。
如果它只是登录凭据,为什么不使用My.Settings? 有你的项目属性,然后设置标签,添加您的设置如。 “用户名”等,并使用该像:My.Settings.username =“Yorrick” My.settings.save