首页 > 代码库 > MXD文档保存

MXD文档保存

MXD保存

 1         private void btnSaveMap_Click(object sender, EventArgs e)
 2         {
 3             try 
 4             {
 5                 string sMxdFileName = mainMapControl.DocumentFilename;//获取文件名
 6                 IMapDocument pMapDocument = new MapDocument();
 7                 if(sMxdFileName!=null&&mainMapControl.CheckMxFile(sMxdFileName))
 8                 {
 9                     if(pMapDocument.get_IsReadOnly(sMxdFileName))
10                     {
11                        MessageBox.Show("该文档制度","Warning");
12                        pMapDocument.Close();
13                        return;
14                     }
15                     else
16                     {
17                         SaveFileDialog pSaveFileDialog=new SaveFileDialog();
18                         pSaveFileDialog.Title="请选择保存路径";
19                         pSaveFileDialog.OverwritePrompt=true;//获取一个布尔类型值,用来提示当存在文件名时,SaveAs对话框是否显示警告
20                         pSaveFileDialog.Filter="Mxd文档(*.mxd)|*.mxd|ArcMap模板(*.mxt)|.mxt";
21                         pSaveFileDialog.RestoreDirectory=true;//获取一个布尔类型值,用来指示对话框再关闭前是否还原当前目录
22                         if(pSaveFileDialog.ShowDialog()==DialogResult.OK)
23                         {
24                             sMxdFileName =pSaveFileDialog.FileName;//将文件名赋值给sMxdfileName;
25                         }
26                         else
27                         {
28                             return;
29                         }
30                     }
31                     pMapDocument.New(sMxdFileName);//创建并打开一个以sMxdFileName为文件名的mxd文档
32                     pMapDocument.ReplaceContents(mainMapControl.Map as IMxdContents);//利用IMxdContents读取地图文档内容,并使之替换IMapDocment借口的实例对象
33                     pMapDocument.Save(true,true);
34                     pMapDocument.Close();
35                     MessageBox.Show("地图文档保存成功","提示");
36                 }
37             }
38             catch (Exception ex)
39             {
40                 MessageBox.Show(ex.Message);
41             }
42         }

MXD另存

 1  private void btnSaveAsMap_Click(object sender, EventArgs e)
 2         {
 3             try
 4             {
 5                 SaveFileDialog pSfd = new SaveFileDialog();
 6                 pSfd.Title = "另存为";
 7                 pSfd.OverwritePrompt = true;
 8                 pSfd.Filter = "Mxd文档(*.mxd)|*.mxd|ArcMap模板(*.mxt)|.mxt";
 9                 pSfd.RestoreDirectory = true;
10                 if (pSfd.ShowDialog() == DialogResult.OK)
11                 {
12                     string sFilePath = pSfd.FileName;
13                     IMapDocument pMapDoc = new MapDocumentClass();
14                     pMapDoc.New(sFilePath);////创建并打开一个以sFilePath为文件名的mxd文档
15                     pMapDoc.ReplaceContents(mainMapControl.Map as IMxdContents);//利用IMxdContents读取地图文档内容,并使之替换IMapDocment借口的实例对象
16                     pMapDoc.Save(true, true); ;
17                     pMapDoc.Close();
18                 }
19             }
20             catch (Exception ex)
21             {
22                 MessageBox.Show(ex.Message);
23             }
24         }

 总结:

文档的保存和另存用到的接口是ImapDocument,二者本质上没有区别,都需要在保存前判断文件是否存在即可。

MXD文档保存