0

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);
}

の文字列は、annotationBase テーブルのフィールドGetBytesと同じです。documentbody

4

1 に答える 1

1

これは、私にとって常に機能するコードです。CRM 4 SDK を使用して CRM 4 から取得したデータを使用して、これが機能していることを確認できます。私は約 18 か月前にほぼ同じプロジェクトを行い、CRM からすべてのメモと電子メールをアーカイブする必要がありました。

それでも問題が解決しない場合は、このコードの元のソースを参照してください

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();
    }
}
于 2012-06-23T12:08:40.620 に答える