【问题标题】:Error message: Value of type 'System.IO.FileStream' cannot be converted to '1-dimensional array of Byte'错误消息:“System.IO.FileStream”类型的值无法转换为“字节的一维数组”
【发布时间】:2014-08-20 08:01:30
【问题描述】:

我收到一个错误:

“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 是 Byte 类型。
如何将文件转换为字节?

【问题讨论】:

  • File 是 vb.net 关键字。不要使用关键字作为变量名
  • FileInfo 也是 .NET 中的一种类型。您应该确保发布 实际 代码,这样我们就不会追逐鬼魂。例如,是fileinfo 还是fileInfos1
  • @Plutonix 这是我的错字。我修改了我的代码以阅读“SignedFileInfo”
  • 来自this post 看起来 FILE 应该是字节数组也不是文件流。
  • 这不是一个真正的答案。只是一点帮助。还是谢谢。

标签: vb.net winforms byte


【解决方案1】:

如果fileName 是您的PDF 文件的名称,而GetTestPdfFile 没有对PDF 文件做任何事情,您可以改为使用File.ReadAllBytes 将文件内容作为字节数组获取:

SignedFileInfo.file = System.IO.File.ReadAllBytes(fileName)

如果GetTestPdfFile 所做的不是返回FileStream,那么您将需要使用FileStream.Read 方法将内容读入字节数组:

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

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

【讨论】:

    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2015-08-04
    相关资源
    最近更新 更多