请问VB取得文件后缀名的函数?

tutuandy 2003-10-19 05:20:14
哪位高手能告诉我,VB取得文件后缀名的函数是哪个?
...全文
668 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxcc 2003-10-20
  • 打赏
  • 举报
回复
引用microsoft scripting runtime

Private Sub Command1_Click()
Dim fso As FileSystemObject
Set fso = New FileSystemObject

MsgBox fso.GetExtensionName("C:\AUTOEXEC.BAT")
End Sub
mmclg 2003-10-20
  • 打赏
  • 举报
回复
错了,少一个"."
filename="mm.txt.exe.abc"
if instr(filename,".")<>0 then
aa=split(filename)
bb=ubound(aa)
fileend=aa(bb)
else
fileend=""
end if

mmclg 2003-10-20
  • 打赏
  • 举报
回复
看看我的方法
filename="mm.txt.exe.abc"
aa=split(filename)
bb=ubound(aa)
fileend=aa(bb)
fileend就是文件的后缀
----------------------------
修改:
filename="mm.txt.exe.abc"
if instr(filename)<>0 then
aa=split(filename)
bb=ubound(aa)
fileend=aa(bb)
else
fileend=""
end if



yunfeng007 2003-10-20
  • 打赏
  • 举报
回复
使用InstrRev函数
描述

返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。

语法

InstrRev(string1, string2[, start[, compare]])

InstrRev函数语法有如下几部分:

部分 描述
string1 必需的。要执行搜索的字符串表达式。
string2 必需的。要搜索的字符串表达式。
start 可选的。数值表达式,设置每次搜索的开始位置。如果忽略,则使用–1,它表示从上一个字符位置开始搜索。如果start包含
Null,则产生一个错误。

compare 可选的。数字值,指出在判断子字符串时所使用的比较方法。如果忽略,则执行二进制比较。关于其值,请参阅“设置值”部分。


设置值

compare参数值如下:

常数 值 描述
vbUseCompareOption –1 用Option Compare语句的设置值来执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 只用于Microsoft Access。基于您的数据库信息执行比较。


返回值

InStrRev返回值如下:

如果 InStrRev返回
string1长度为零。 0
string1为Null。 Null
string2长度为零 Start
string2为Null Null
string2没有找到。 0
string2在string1中找到。 找到匹配字符串的位置。
start > Len(string2) 0


说明

请注意,InstrRev函数的语法和Instr函数的语法不相同。
'------------------------------------------------------
'例子
Dim i As Integer
i = InStrRev("Hello_120.exe.scr", ".")
MsgBox Right("Hello_120.exe.scr", Len("Hello_120.exe.scr") - i)
后八十生人 2003-10-19
  • 打赏
  • 举报
回复
现在还有一些文件名:Hello_120.exe.scr 怎么解决?
kmzs 2003-10-19
  • 打赏
  • 举报
回复
sfile = 不管有没有扩展名,是什么扩展名都可以
if InStr(StrReverse(sfile), ".")>0 then
sfile = StrReverse(Left(StrReverse(sfile), InStr(StrReverse(sfile), ".") - 1))
else
sfile="" '无扩展名
endif
samtyty 2003-10-19
  • 打赏
  • 举报
回复
看看我的方法
filename="mm.txt.exe.abc"
aa=split(filename)
bb=ubound(aa)
fileend=aa(bb)
fileend就是文件的后缀

这个好,我的扩展名经常不止3个
mmcgzs 2003-10-19
  • 打赏
  • 举报
回复
看看我的方法
filename="mm.txt.exe.abc"
aa=split(filename)
bb=ubound(aa)
fileend=aa(bb)
fileend就是文件的后缀
kmzs 2003-10-19
  • 打赏
  • 举报
回复
sfile = "a.bcd"
if InStr(StrReverse(sfile), ".")>0 then
sfile = StrReverse(Left(StrReverse(sfile), InStr(StrReverse(sfile), ".") - 1))
else
sfile=""
endif
kmzs 2003-10-19
  • 打赏
  • 举报
回复
假设文件名为a.bcd
sfile = "a.bcd"
if InStr(StrReverse(sfile), ".")>0 then sfile = StrReverse(Left(StrReverse(sfile), InStr(StrReverse(sfile), ".") - 1))
扩展名sfile ="bcd",没错吧???
踏平扶桑 2003-10-19
  • 打赏
  • 举报
回复
用instr来找“.”这个东西
最后一个点后面的所有字符加在一起就是这个文件的扩展名了(没有扩展名的不算)
wqdz 2003-10-19
  • 打赏
  • 举报
回复
我是用“tanta(tanta)”的方法,搜索文件名中最后一个(.)。
tanta 2003-10-19
  • 打赏
  • 举报
回复
呵呵,楼上的好象有问题。现在后缀名可能不只三位了。
tanta 2003-10-19
  • 打赏
  • 举报
回复
我印象中好象没有,不过,你可以在文件名中搜索点(.),最后一个点后面就是后缀名。
Jackile 2003-10-19
  • 打赏
  • 举报
回复
自己编,Right(String,3)最右边三位就是后缀名啊,Such as Ocxname.OCx,你执行一下就可以得到OCx了!
qjqmoney 2003-10-19
  • 打赏
  • 举报
回复
没有这个函数,但你可以取得文件的完整路径后,再用Right('文件路径',3)来得到文件的后缀名,或,也哥用API函数。

7,763

社区成员

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

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