加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – 如何让文本文件成为构建的一部分?

发布时间:2020-12-17 00:33:07 所属栏目:大数据 来源:网络整理
导读:我编写了一个从文本文件中读取的程序,可以创建它们来加载和保存数据.我有一些文件是程序启动时加载的“默认”数据.这些文件由静态引用加载.我的代码在发布之前运行正常,但很明显,当我发布它时,静态引用不再有效.我不知道如何将默认数据添加到构建中作为不同
我编写了一个从文本文件中读取的程序,可以创建它们来加载和保存数据.我有一些文件是程序启动时加载的“默认”数据.这些文件由静态引用加载.我的代码在发布之前运行正常,但很明显,当我发布它时,静态引用不再有效.我不知道如何将默认数据添加到构建中作为不同的文本文件,以便我仍然可以在构建后引用它.

我想能够构建程序并拥有一些随可执行文件一起提供的文件夹,其中包含我可以轻松引用的默认数据文件,但我不知道该怎么做(或者如果有更好的方法) .

下面是我用来从文件中读取的代码的开头.目前,默认数据的文件名是静态传递到sub中的,用于标识要读取的文件,所以我想要一个我可以做同样事情的已发布文件.

Try
    Dim sr As New IO.StreamReader(FileName)
    Dim strLine As String = ""

    Do Until sr.EndOfStream
        strLine = sr.ReadLine
        'Code that interprets the data in the file

注意:我尝试将文件添加为“资源”,但我似乎无法将该文件作为文本文件引用;我只能检索文档中包含的大量文本墙,这些文本不能与上面的代码一起使用(除非我当然缺少某些内容).

如果你能澄清一下:

>如何将文件添加到构建中,以便我仍然可以访问它
统称为文件名?
>我的代码将如何引用文件(例如,通过
最终构建中的“My.Resources.filename”?)?

您可以将文件作为内容文件或嵌入资源添加到构建中.

对于内容文件,将文件的构建操作设置为“内容”,将“复制到输出目录”设置为文件属性中的“始终复制”.然后,您可以像这样访问该文件:

FileName = Application.StartupPath() = + FileName
Dim sr As New IO.StreamReader(FileName)
...

要将文件作为资源嵌入,必须将文件的“构建操作”设置为“嵌入式资源”,并将“复制到输出目录”设置为false.
这个Microsoft support page有一个关于访问嵌入式资源的步骤.代码将是这样的:

Dim sr As StreamReader
Dim thisAssembly As Assembly
thisAssembly = Assembly.GetExecutingAssembly()
sr = New StreamReader(thisAssembly.GetManifestResourceStream("NameSpace." + FileName))

Dim strLine As String = ""
Do Until sr.EndOfStream
    strLine = sr.ReadLine
    'Code that interprets the data in the file
    ...

将NameSpace替换为应用程序的命名空间(项目属性 – >应用程序 – >根命名空间)

您还必须在代码文件的顶部添加Imports System.Reflection.

使用嵌入式资源具有管理文件较少的优点,您无需跟踪路径.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读