我有二进制数据存储在数据库中,我需要将它们转换回来备份。其中大多数是.doc文件,文件中附有图像。我恢复它们的方法是将二进制数据写入字节字符串,并将这些字节写入文件,如mydoc.doc。问题是,它适用于txt文件,它实际上也适用于.doc文件的文本部分。由于大多数.doc文件包含jpeg附加,转换后我得到一些可读文本和随机字符,我相信在doc文件中附加图片。任何帮助表示赞赏。提前谢谢......
注意:二进制数据存储在数据库中的图像数据类型中。数据库包含文件路径和名称(现在不存在)和相应的二进制数据存储在图像类型中,所以从路径我可以检测到之前的文件类型...其中一些是.txt(我能够完美转换),其中一些是.doc(这是因为其内部的问题而出现问题)
这是我的代码:
string s = "D0CF11E0A1B11AE100000000000000000000"; // note: string is for example
var bytes = GetBytesFromByteString(s).ToArray();
File.WriteAllBytes("C:\\temp\\test.doc", bytes);
答案 0 :(得分:1)
.doc文件不是字符串,甚至是文本或ASCII。它是原始二进制文件格式。 因此,如果您的数据库单元格包含BLOB(二进制大对象),则只需将其视为字节数组并将其写入(二进制)文件。没有转换,没有编码,没有。
<小时/> 的修改
无论是谁设计了这个数据库,他们都将各种文件存储为图像(在memory-dump-image意义上),即在图像类型的单元格中的一系列原始字节。
您应该完全按照上面提到的方式处理这些字节:一系列原始字节。