默认头像
路人甲
路人甲
  • 注册日期2006-03-27
  • 发帖数20
  • QQ
  • 铜币185枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1742回复:3

[求助]请教ArcEngine中另存为的问题

楼主#
更多 发布于:2006-03-27 17:07

这个是我照着它的sample中的SaveAs自己改写的

Private Sub mnuSaveAs_Click()
   dlgOpenFile1.DialogTitle = "文件另存为"
   dlgOpenFile1.Filter = "ArcMap Documents(*.mxd)|*.mxd|ArcMap Templates(*.mxt)|*.mxt|Published Maps(*.pmf)|*.pmf"
   dlgOpenFile1.ShowSave
   
   Dim sFile As String
   Dim temp As Integer
   sFile = dlgOpenFile1.FileName
   If sFile = "" Then Exit Sub
   If mapDocument.IsReadOnly(mapDocument.DocumentFilename) = True Then
       MsgBox "这个一个只读文件,不能替换它!", vbCritical, "保存失败"
       Exit Sub
   End If
   If sFile = mapDocument.DocumentFilename Then
       temp = MsgBox(sFile ; "已存在。要替换它吗?", vbOKCancel, "另存为")
       If temp = 1 Then
           mapDocument.Save mapDocument.UsesRelativePaths
       Else: Exit Sub
       End If
   Else
       mapDocument.SaveAs sFile, True
   End If
End Sub

现在有一个问题不能解决,就是:

假如我现在打开的是A.mxd文件,然后点中SaveAs以后,在弹出的对话框里,我选中了已经存在的B.mxd文件,然后点保存,我希望这个时候可以弹出一个对话框,提示“B文件已经存在,要替换它吗?”

望各位指点一下

喜欢0 评分0
默认头像
路人甲
路人甲
  • 注册日期2006-03-27
  • 发帖数20
  • QQ
  • 铜币185枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-03-27 17:11

还一个问题忘了说了,就是

   If mapDocument.IsReadOnly(mapDocument.DocumentFilename) = True Then
       MsgBox "这个一个只读文件,不能替换它!", vbCritical, "保存失败"
       Exit Sub
   End If

这里即使我打开的是一个只读文件,但是这一步有的时候会自己跳过去,接着执行它后面的代码,好像是把该文件当成非只读文件处理了(VB中我用F8一行一行查的时候,会发现这里会跳过去),这个时候我把这些代码重新打一遍,问题就解决了,谁能和我说一下为什么吗?

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2005-12-06
  • 发帖数7
  • QQ
  • 铜币134枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2006-03-31 11:00

用FileSystemObject的FileExist判断保存的那个路径

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2006-03-27
  • 发帖数20
  • QQ
  • 铜币185枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2006-04-03 11:48
谢了,不过我现在的saveas还是用arcengine自己的toolbar里的saveas了,save好像还是要自己写
举报 回复(0) 喜欢(0)     评分
默认头像

返回顶部