[CommandMethod("TestClose", CommandFlags.Session)]
public void TestCloseDocument()
{
string fullName = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Name;
string projectDirectory = System.IO.Path.GetDirectoryName(Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Name);
string drawingNameWithOutExt = System.IO.Path.GetFileNameWithoutExtension(Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Name);
string ext = System.IO.Path.GetExtension(Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Name);
// create directory if it doesn't exists
string newTempDir = string.Concat(projectDirectory, "\\temp");
if (!Directory.Exists(newTempDir))
{
Directory.CreateDirectory(newTempDir);
}
string fullNewDrawingName = string.Concat(newTempDir, "\\", drawingNameWithOutExt, "_1", ext);
if (!File.Exists(fullNewDrawingName))
File.Copy(fullName, fullNewDrawingName);
// if I comment this bit out I can close the drawing
Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.Open(fullNewDrawingName, false);
try
{
foreach (Autodesk.AutoCAD.ApplicationServices.Document doc in Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager)
{
if (doc.Name == fullName)
{
doc.CloseAndDiscard();
return;
}
}
}
catch (SystemException ex)
{
string message = ex.ToString();
}
}
[CommandMethod("TestClose", CommandFlags.Session)]
public void TestCloseDocument()
{
string fullName = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Name;
string projectDirectory = System.IO.Path.GetDirectoryName(Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Name);
string drawingNameWithOutExt = System.IO.Path.GetFileNameWithoutExtension(Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Name);
string ext = System.IO.Path.GetExtension(Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Name);
// create directory if it doesn't exists
string newTempDir = string.Concat(projectDirectory, "\\temp");
if (!Directory.Exists(newTempDir))
{
Directory.CreateDirectory(newTempDir);
}
string fullNewDrawingName = string.Concat(newTempDir, "\\", drawingNameWithOutExt, "_1", ext);
if (!File.Exists(fullNewDrawingName))
File.Copy(fullName, fullNewDrawingName);
try
{
foreach (Autodesk.AutoCAD.ApplicationServices.Document doc in Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager)
{
if (doc.Name == fullName)
{
doc.CloseAndDiscard();
break;
}
}
//
Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.Open(fullNewDrawingName, false);
}
catch (SystemException ex)
{
string message = ex.ToString();
}
}