public void ExportPages(string dir, GraphCursor <IVisual, IVisualEdge> source) { var graph = source.Graph; var digidocVisual = source.Cursor; var man = new StreamContentIoManager(); if (HasPages(graph, digidocVisual)) { int i = 0; var s = source.Cursor.Data == null ? CommonSchema.NullString : source.Cursor.Data.ToString(); foreach (var pageContent in PageStreams(graph, digidocVisual)) { var info = man.GetContentInfo(pageContent); var ext = info != null ? "." + info.Extension : ""; var pageName = i.ToString().PadLeft(5, '0'); if (pageContent.Description != null) { pageName = pageContent.Description.ToString().PadLeft(5, '0'); } var name = dir + Path.DirectorySeparatorChar + s + " " + pageName + ext; man.WriteSink(pageContent, new Uri(name)); pageContent.Data.Dispose(); pageContent.Data = null; } } }