1

我需要帮助,我确实没有想法。我需要在下面的代码中做,以便能够从项目(My.resources)中选择一个文件,而不是硬编码这一行 FSR.Write(My.Resources._1_5, 0, My.Resources._1_5.Length) 我希望能够传递一个选定的值,但我不能存储My.Resources._1_5到一个字节变量,它一直说不能将一维字节数组存储到字节中。_1_5 是一个 doc 文件,我有一长串我希望能够从中选择的文件。

 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)

不确定我是否在解释自己。

4

1 回答 1

0

如果很可能该My.Resources._1_5属性作为字节数组公开,那么您可以简单地创建一个字节数组变量来指向它,如下所示:

Dim resource_1_5() As Byte = My.Resources._1_5

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

Dim resources As New List(Of Byte())()
resources.Add(My.Resources._1_5)

但是,您可能真正想要做的只是通过字符串名称而不是通过具体属性访问资源。如果是这种情况,您可以通过 获取它的名称ResourceManager,如下所示:

Dim resource_1_5() As Byte = DirectCast(My.Resources.ResourceManager.GetObject("_1_5", My.Resources.Culture), Byte())

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

于 2015-01-15T17:05:27.523 回答