我在这里需要帮助,我确实没有想法。
我需要在下面的代码中做,才能从项目中选择一个文件(My.resources),而不是硬编码这行
FSR.Write(My.Resources._1_5, 0, My.Resources._1_5.Length)
我希望能够传递一个选定的值,但是我不能将My.Resources._1_5
存储到Byte变量中,它继续说不能将Bytes的1维数组存储到Byte中。 _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)
不确定我是否在解释自己。
答案 0 :(得分: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
。因此,您需要使用DirectCast
或CType
将其强制转换为Byte
数组。