Vb.net 错误消息:类型为';System.IO.FileStream';无法转换为';字节的一维数组';

Vb.net 错误消息:类型为';System.IO.FileStream';无法转换为';字节的一维数组';,vb.net,winforms,byte,Vb.net,Winforms,Byte,我得到一个错误: 无法将“System.IO.FileStream”类型的值转换为 “字节的一维数组” 我的代码块是: Dim FileToSign As System.IO.FileStream = GetTestPdfFile(fileName) Dim SignedFileInfo As New secure.echosign.com.FileInfo() SignedFileInfo.fileName = fileName SignedFileInfo.mimeType = Nothin

我得到一个错误:

无法将“System.IO.FileStream”类型的值转换为 “字节的一维数组”

我的代码块是:

Dim FileToSign As System.IO.FileStream = GetTestPdfFile(fileName)
Dim SignedFileInfo As New secure.echosign.com.FileInfo()
SignedFileInfo.fileName = fileName
SignedFileInfo.mimeType = Nothing
SignedFileInfo.file = FileToSign
SignedFileInfo.file是字节类型。

如何将文件转换为字节?

如果
fileName
是PDF文件的名称,并且
getTestPdfile
对PDF文件没有任何作用,则可以使用以字节数组形式获取文件内容:

SignedFileInfo.file = System.IO.File.ReadAllBytes(fileName)
Dim pdfLength As Integer = CInt(FileToSign.Length - 1)
Dim pdfBytes(pdfLength) As Byte
If FileToSign.Read(pdfBytes, 0, pdfLength) <> pdfLength Then
    ' Hmm, something's not right
End If
SignedFileInfo.file = pdfBytes
如果
getTestPffile
正在执行的操作不是返回
FileStream
,则需要使用该方法将内容读入字节数组:

SignedFileInfo.file = System.IO.File.ReadAllBytes(fileName)
Dim pdfLength As Integer = CInt(FileToSign.Length - 1)
Dim pdfBytes(pdfLength) As Byte
If FileToSign.Read(pdfBytes, 0, pdfLength) <> pdfLength Then
    ' Hmm, something's not right
End If
SignedFileInfo.file = pdfBytes
Dim pdfLength As Integer=CInt(FileToSign.Length-1)
将pdfBytes(pdfLength)调整为字节
如果FileToSign.Read(pdfBytes,0,pdfLength)pdfLength,则
嗯,有点不对劲
如果结束
SignedFileInfo.file=pdfBytes

所有代码都未经测试,但应该非常接近

文件
是一个vb.net关键字。不要将关键字用作变量名称FileInfo也是.NET中的一种类型。你应该确保发布真实的代码,这样我们就不会追踪鬼魂了。例如,是
fileinfo
还是
fileInfos1
?@puropoix是我的打字错误。我修改了我的代码,从中读取“SignedFileInfo”,看起来这个文件应该是一个字节数组,也不是一个文件流。这不是一个真正的答案。只是一点帮助。无论如何,谢谢你。