CRM在AnnotationBase基表中保存附件。
如何将DocumentBody
实体中的文本转换回文件并将其保存为文件系统?
我已获得documentbody
字段的值,然后尝试将其写入我的计算机,但我的文件已损坏。
我正在使用此代码:
String DocumentBody = Convert.ToBase64String(
newUnicodeEncoding().GetBytes("UEsDBBQABgAIAAAAIQDQf9XuxAEAAE4HAAATAAgCW0NvbnRlbnRfVHlwZXNd Lnh/abtPgp4eu7+W68C2dvLaWtho32sTajdkFmweGeKMQYTD5MrcDFf"));
using (FileStream fs = new FileStream("c:\\1.docx", FileMode.Create, FileAccess.Write))
{
byte[] bytes = Convert.FromBase64String(DocumentBody);
fs.Write(bytes, 0, bytes.Length);
}
GetBytes
中的字符串与annotationBase表中的documentbody
字段相同。
答案 0 :(得分:1)
以下是一直对我有用的代码 - 我可以确认这对我使用从CRM 4中使用CRM 4 SDK重新获取的数据起了作用。我在18个月前做了一个几乎完全相同的项目,我们不得不归档CRM的所有笔记和电子邮件。
如果您仍然遇到问题see the original source of this code
public static void ExportFile(string fileName, string content)
{
byte[] fileContent = Convert.FromBase64String(content);
using (FileStream file = new FileStream(fileName, FileMode.Create))
{
using (BinaryWriter writer = new BinaryWriter(file))
{
writer.Write(fileContent,0,fileContent.Length);
writer.Close();
}
file.Close();
}
}