CommonDialog 在为ShowOpen 和 ShowSave 时,怎么判断输入的后缀名呢

MeBoss 2011-06-30 11:29:56

With dlgCommonDialog
.DialogTitle = "保存"
.CancelError = False
'ToDo: 设置 common dialog 控件的标志和属性
.Filter = "加工文件 (*.Djc)|*.Djc"
.Flags = cdlOFNExtensionDifferent
.Flags = 10
.ShowSave
If Len(.FileName) = 0 Then
Exit Sub
End If
sFile = .FileName
End With

是 CommonDialog 自己有自带的属性吗,可是我把那几个属性都设置了,还是没用。

问题是这样的我要求保存的后缀名为Djc,可是我输入个111.txt,他保存的就成了111.txt。这种问题应该怎么解决呢,3Q
...全文
174 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-06-30
  • 打赏
  • 举报
回复
Dim s1 As String
Dim k As Long
s1 = "111.html"
k = InStrRev(s1, ".")
If k > 0 Then
s1 = Left(s1, k - 1) + ".Djc"
Else
s1 = s1 + ".Djc"
End If
Debug.Print "s1=[" + s1 + "]"
赵4老师 2011-06-30
  • 打赏
  • 举报
回复
Dim s1 As String
Dim k As Long
s1 = "111"
k = InStrRev(s1, ".")
If k > 0 Then
s1 = Left(s1, k - 1) + ".Djc"
Else
s1 = s1 + ".Djc"
End If
Debug.Print "s1=[" + s1 + "]"
zx087x 2011-06-30
  • 打赏
  • 举报
回复
已经回复过了
MeBoss 2011-06-30
  • 打赏
  • 举报
回复
Dim ErrorNum As Long
Dim count As Long
Dim sFile As String
Dim ChangeDoc As Long

ChangeDoc = DocLib.ChangeDoc '取出当前状态值,只要做了增删改查都会变成1
If SaveAction = 1 Then '如果mnuFileSave_Click过程使用者为 另存为时,无条件执行保存
ChangeDoc = 1
End If

If 1 = ChangeDoc Then '保存时判断是否有数据

With dlgCommonDialog
.DialogTitle = "保存"
.CancelError = False
'ToDo: 设置 common dialog 控件的标志和属性
.Filter = "加工文件 (*.Djc)|*.Djc"
.Flags = 10
.ShowSave
If Len(.FileName) = 0 Then
Exit Sub
End If
sFile = .FileName
End With

DocLib.SaveFile sFile, ErrorNum
Select Case ErrorNum

Case 1
MsgBox "文件创建失败", vbCritical, "错误提示"
Case 2
MsgBox "FileName=NULL", vbCritical, "错误提示"
End Select

End If


我就是想取得路径名,文件是在C里面创建的,可是发现只要我输入111.txt 111.html之类的后缀名,取得的路径名的后缀就变了。应该怎么避免呢
zx087x 2011-06-30
  • 打赏
  • 举报
回复
代码不全
保存部分的代码没拿出来
嗷嗷叫的老马 2011-06-30
  • 打赏
  • 举报
回复
通用对话框的功能只是取得一个全路径.

你应该对取回的路径(sFile = .FileName这句)做个判断.

比如,用户是输入了文件名,还是连后缀都输入了?

如果输入了后缀名,但却不是指定的后缀名,或没有输入后缀名,你就得自己添加.

很简单一句:

sFile = iif(right(.FileName,4)=".djc",.filename,.filename & ".djc")

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧