0
私は、エンティティごとに添付ファイル(注釈)をダウンロードするコンソールアプリケーションを作成しています。そのアイデアは、エンティティ名、私がフェッチてきた今まで各フォルダへの添付ファイルをダウンロードする名前は添付ファイルのIDです。crm2011
string filepath = "C:\\";
String fetchXmlNote = "<fetch mapping='logical' count='20'>";
fetchXmlNote += "<entity name='annotation'>";
fetchXmlNote += "<attribute name='filename'/>";
fetchXmlNote += "<attribute name='documentbody'/>";
fetchXmlNote += "<attribute name='mimetype'/>";
fetchXmlNote += "<attribute name='objectid'/>";
fetchXmlNote += "<link-entity name='" +EntityName+ "' from='" + EntityName + "id' to='objectid'>";
fetchXmlNote += "</link-entity>";
fetchXmlNote += "</entity>";
fetchXmlNote += "</fetch>";
Microsoft.Xrm.Sdk.EntityCollection result = service.RetrieveMultiple(new FetchExpression(fetchXmlNote));
if (result != null)
{
FilePath = FilePath + EntityName + "\\";
foreach (Entity e in result.Entities)
{
Directory.CreateDirectory(FilePath + e.GetAttributeValue<EntityReference>("objectid").Id.ToString());
if (!String.IsNullOrWhiteSpace(e.Attributes["documentbody"].ToString()))
{
byte[] data = Convert.FromBase64String(e.Attributes["documentbody"].ToString());
File.WriteAllBytes(FilePath + e.Attributes["filename"].ToString(), data);
}
:エンティティフォルダ、今までの私のコードで注釈のオブジェクトIDと名前が付けられ、各サブフォルダにfolder.HereのIDに対応するファイルになりますファイルをダウンロードするためのxml、私はそれぞれのobjectidのためのフォルダを作成しましたが、私は対応するフォルダに対応するIDを持つ各ファイルを配置する必要があります。 重複のチェックが必要であることに注意してください。 何か助けていただければ幸いです。
ない、あなたが求めているのかわから存在する場合は、各
file/folder
をチェックしてみてください。すでにディレクトリ( 'Directory.CreateDirectory')を作成するコードがあり、すでに' objectid'を持っています。あなたはどんな問題を抱えていますか? – jasonscript