A long time request by developer community is to recover the drawing files through API. That request has been addressed in AutoCAD 2015. Now, document collection class has a new API “AppContextRecoverDocument” which takes the name of the drawing file to recover. This API is present in ObjectARX and in .NET. In ObjectARX use AcApDocManager::appContextRecoverDocument() API.
[CommandMethod("RecoverTest", CommandFlags.Session)]
publicvoid RecoverTest() // This method can have any name
{
Document doc =
Application.DocumentManager.MdiActiveDocument;
DocumentCollection docs = Application.DocumentManager;
Editor ed = doc.Editor;
OpenFileDialog file =
newOpenFileDialog("Select file to recover", null,
"dwg;dxf", "Recover",
OpenFileDialog.OpenFileDialogFlags.DoNotTransferRemoteFiles);
//show the dialog and take the dwg input
System.Windows.Forms.DialogResult dr = file.ShowDialog();
if (dr != System.Windows.Forms.DialogResult.OK)
return;
try
{
//call AppContextRecoverDocument to revover the selected DWG.
docs.AppContextRecoverDocument(file.Filename);
}
catch
{
ed.WriteMessage("Unable to recover the drawing\n");
}
}
publicvoid RecoverTest() // This method can have any name
{
Document doc =
Application.DocumentManager.MdiActiveDocument;
DocumentCollection docs = Application.DocumentManager;
Editor ed = doc.Editor;
OpenFileDialog file =
newOpenFileDialog("Select file to recover", null,
"dwg;dxf", "Recover",
OpenFileDialog.OpenFileDialogFlags.DoNotTransferRemoteFiles);
//show the dialog and take the dwg input
System.Windows.Forms.DialogResult dr = file.ShowDialog();
if (dr != System.Windows.Forms.DialogResult.OK)
return;
try
{
//call AppContextRecoverDocument to revover the selected DWG.
docs.AppContextRecoverDocument(file.Filename);
}
catch
{
ed.WriteMessage("Unable to recover the drawing\n");
}
}