gpt4 book ai didi

c# - 如何在 C# 中将对象写入二进制文件?

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:27 26 4
gpt4 key购买 nike

我需要用 C# 将“对象”写入文件,但到目前为止我的所有尝试都没有奏效。问题是我想写的对象实际上是 object 类型,因为它是从 MailItem 对象的 Attachments 集合返回的Outlook 电子邮件。

我已经设法将它插入到 SQL Server 数据库中,检索并成功地从中创建了一个正确的文件,但这不是唯一的方法。

我也尝试使用 BinaryFormatter 如下所示,但这总是通过在开头添加一些不需要的字符来破坏我的文件头(其余数据似乎没问题):

[...]
using ( FileStream fileStream = new FileStream( tempName, FileMode.Create ) )
{
using ( BinaryWriter binaryWriter = new BinaryWriter( fileStream ) )
{
using ( MemoryStream memoryStream = new MemoryStream() )
{
object attachmentData =
attachment.PropertyAccessor.GetProperty( PR_ATTACH_DATA_BIN );
BinaryFormatter binaryFormatter =
new BinaryFormatter();
binaryFormatter.Serialize( memoryStream, attachmentData );
memoryStream.Seek( 0, SeekOrigin.Begin );
binaryWriter.Write( memoryStream.ToArray() );
}
}
}
[...]

有什么想法吗?我无法控制我从 Outlook 获得的内容,所以通常的序列化方法似乎不是我在这里需要的...

最佳答案

我想这就是您要找的:

How to: Save attachments from outlook

if (newEmail.Attachments.Count > 0)
{
for (int i = 1; i <= newEmail.Attachments.Count; i++)
{
newEmail.Attachments[i].SaveAsFile
(@"C:\TestFileSave\" +
newEmail.Attachments[i].FileName);
}
}

关于c# - 如何在 C# 中将对象写入二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11391137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com