VB.NET中如何将Byte类型转换为Byte()数组?
解决Byte转Byte()数组的问题
首先,你报错的核心原因是Convert.ToByte()的作用是将值转换为单个Byte类型,而非Byte()数组,直接调用必然会出现类型不匹配。要把单个Byte转换成Byte()数组,最简单的方式是直接初始化一个包含该Byte元素的数组:
' 获取单个Byte(注意:FileLen是Long类型,用CByte转换会截断数据,若文件长度超过255会丢失有效信息) Dim Bytes As Byte = CByte(FileLen(dlgSave.FileName)) ' 将单个Byte包装为Byte()数组 Dim BytesFin() As Byte = {Bytes}
随后修改调用代码,传入数组参数即可:
SaveFile(dlgSave.FileName, BytesFin, True)
额外注意事项
这里存在一个潜在的逻辑问题:FileLen()返回的是Long类型(代表文件的总字节数),如果目标文件长度超过255,CByte()会直接截断高位数据,得到的结果完全错误。如果你实际需求是读取文件的字节内容而非文件长度的Byte值,应该直接读取文件到Byte数组,而非转换FileLen的结果:
Dim BytesFin() As Byte = My.Computer.FileSystem.ReadAllBytes(dlgSave.FileName)
这样能正确获取文件的全部字节数据,传入SaveFile函数即可正常工作。
内容的提问来源于stack exchange,提问作者WHerschel
相关产品推荐
相关产品推荐

