首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向BinaryWriter发送特定值

向BinaryWriter发送特定值
EN

Stack Overflow用户
提问于 2015-01-15 16:27:47
回答 1查看 81关注 0票数 1

我需要帮助,我的想法已经用完了。我需要在下面的代码中这样做,为了能够从项目(My.resources)中选择一个文件,而不是HardCoding_1_5是一个文档文件,我有一个很长的文件列表,我希望能够从中选择。

代码语言:javascript
复制
 Dim TempFileName As String = "TMPDoc.doc"
        Dim TempFolder As String = My.Computer.FileSystem.SpecialDirectories.Temp
        Dim path As String = Application.StartupPath & "\"
        TempFileName = path & TempFileName

        Dim FS As New System.IO.FileStream(TempFileName, IO.FileMode.Create, FileAccess.Write)
        Dim FSR As New System.IO.BinaryWriter(FS)
        FSR.Write(My.Resources._1_5, 0, My.Resources._1_5.Length)
        FSR.Close()
        FS.Close()

        appWord.Documents.Open(TempFileName)

不知道我是不是在解释我自己。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-15 17:05:27

如果像大多数情况一样,My.Resources._1_5属性被公开为一个字节数组,那么您可以简单地创建一个字节数组变量来指向它,如下所示:

代码语言:javascript
复制
Dim resource_1_5() As Byte = My.Resources._1_5

或者您可以创建一个字节数组列表并将其添加到列表中,如下所示:

代码语言:javascript
复制
Dim resources As New List(Of Byte())()
resources.Add(My.Resources._1_5)

但是,您真正想要做的是通过字符串名称访问资源,而不是通过一个具体的属性。如果是这样的话,您可以通过ResourceManager获得它的名称,如下所示:

代码语言:javascript
复制
Dim resource_1_5() As Byte = DirectCast(My.Resources.ResourceManager.GetObject("_1_5", My.Resources.Culture), Byte())

注意,在上面的示例中,GetObject方法返回一个Byte数组,但它将其转换为Object。因此,您需要使用DirectCastCType将其转换回Byte数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27968180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档