我正在构建一个打字应用程序,并想将包含各种常用单词的文本文件添加到项目中,以后可以从中读取。但是,当我转到 Project -> Add Existing Item 时,只有将 VB 代码文件添加到项目中的选项。有没有办法将文本文件添加到项目中,或者我必须在运行时从文件中导入数据?
问问题
43793 次
1 回答
18
项目资源 (Resx) 版本:
对于您的示例,此版本更易于使用!
- 右键单击您的项目
- 选择属性
- 转到资源部分
- 您将在资源部分的左上角看到一个下拉菜单,如下面的屏幕截图所示。
- 从下拉菜单中选择“文件”。
- 单击添加资源按钮。
- 将显示选择文件对话框。
- 选择您的文件
- 保存您的项目
现在要访问这个文件,只需使用类似...
Dim content As String = My.Resources.mytextfile
注意:您不需要扩展名,这也将是强类型的!
嵌入式资源版本:
- 右键单击您的项目。
- 转到添加->现有项目。
- 右下角将是一个下拉菜单(文件名旁边)。
- 选择“所有文件 (*.*)”
- 浏览到文件的位置。
- 添加文件。
添加文件后,在解决方案资源管理器窗口中选择文件将允许您选择其“构建操作”。您可以从选项中选择内容或嵌入式资源。
- Content:允许您通过 Application.GetContentStream( uri ) 将文件(与程序集在同一目录中)作为流检索。要使此方法起作用,它需要一个 AssemblyAssociatedContentFile 自定义属性,当您将文件标记为“内容”时,VS 会优雅地添加该属性
- 嵌入资源:将文件嵌入到专有程序集清单资源中。
取自; https://stackoverflow.com/a/145769/1305169
如果您选择嵌入式资源,那么要读取您的文本文件,您可以使用以下代码;
Dim executing_assembly As System.Reflection.Assembly = _
Me.GetType.Assembly.GetEntryAssembly()
' Get our namespace.
Dim my_namespace As String = _
executing_assembly.GetName().Name.ToString()
' Load a text file.
Dim text_stream As Stream = _
executing_assembly.GetManifestResourceStream(my_namespace _
+ ".text1.txt")
If Not (text_stream Is Nothing) Then
Dim stream_reader As New StreamReader(text_stream)
Label1.Text = stream_reader.ReadToEnd()
stream_reader.Close()
End If
取自:http ://www.vb-helper.com/howto_net_embedded_resources.html
于 2013-01-29T20:19:51.377 回答