显示文件名,但不包括后缀,帮我看看问题出在哪?

时间:2022-12-28 07:51:10
在下初学VB。我想显示文件列表框中的文件名,但不包括后缀。
建立驱动器列表框、目录列表框和文件列表框,并将其组合。建立一command按钮,编写代码如下,比较简单,就不加说明了。

Private Sub Command1_Click()
Dim m As String, p As Integer
For i = 0 To File1.ListCount
    m = File1.List(i)
    p = InStr(1, m, ".")
    m = Left(m, p - 1)                               '这行提示出错了
Print m
Next i
End Sub

运行时虽然也显示文件名,但提示“实时错误5:无效的过程调用或参数”。如果我把“m = Left(m, p - 1)”改成“m = Left(m, p)”就不提示出错了,但显示的文件名后面多了个点。
请问问题出在哪里,应该怎么改一下才能只显示文件名不显示点?

6 个解决方案

#1


你没有处理两个特殊的路径名 "." 和 ".."。

#2


引用 1 楼 Tiger_Zhao 的回复:
你没有处理两个特殊的路径名 "." 和 ".."。

不明白你的意思。我是新手,能说具体点吗,需要怎么改代码才行?谢谢

#3


打印p值看看,应该是0,这就造成了left(m,-1)肯定出错
debug.print p

#4


m = Left(m, p - 1) 把这行添加一个判断语句
if p>1 then m=left(m,p-1)

#5


引用 3 楼 Topc008 的回复:
打印p值看看,应该是0,这就造成了left(m,-1)肯定出错
debug.print p

最后一个数是显示0了,比如说有3个文件,显示了4个数,前三个数对应三个文件,都正常,第四个数是0。
那我应该怎么改动一下呢?

#6


引用 2 楼 qq_34451232 的回复:
不明白你的意思。我是新手,能说具体点吗,需要怎么改代码才行?谢谢

你先检查 m 是不是"." 或 "..",这两个忽略不用处理。

#1


你没有处理两个特殊的路径名 "." 和 ".."。

#2


引用 1 楼 Tiger_Zhao 的回复:
你没有处理两个特殊的路径名 "." 和 ".."。

不明白你的意思。我是新手,能说具体点吗,需要怎么改代码才行?谢谢

#3


打印p值看看,应该是0,这就造成了left(m,-1)肯定出错
debug.print p

#4


m = Left(m, p - 1) 把这行添加一个判断语句
if p>1 then m=left(m,p-1)

#5


引用 3 楼 Topc008 的回复:
打印p值看看,应该是0,这就造成了left(m,-1)肯定出错
debug.print p

最后一个数是显示0了,比如说有3个文件,显示了4个数,前三个数对应三个文件,都正常,第四个数是0。
那我应该怎么改动一下呢?

#6


引用 2 楼 qq_34451232 的回复:
不明白你的意思。我是新手,能说具体点吗,需要怎么改代码才行?谢谢

你先检查 m 是不是"." 或 "..",这两个忽略不用处理。