English 中文(简体)
如何获得档案名称?
原标题:How to get only a filename?
  • 时间:2009-09-13 07:26:25
  •  标签:

采用VB6

法典。

Dim posn As Integer, i As Integer
    Dim fName As String
    posn = 0
    For i = 1 To Len(flname)
        If (Mid(flname, i, 1) = "") Then posn = i
    Next i
    fName = Right(flname, Len(flname) - posn)
    posn = InStr(fName, ".")
        If posn <> 0 Then
           fName = Left(fName, posn - 1)
       End If
    GetFileName = fName



FileName: Clockings8.mis06042009 120442.fin

但是,它正在显示一个档案名称是“Clockings8”。 它应显示“Clockings8.mis06042009 120442”

如何修改法典?

必要性 vb6 帮助

最佳回答

使用<代码>的比照更清洁 文本:FileSystemObject 部分。 Try:

Dim fso as New Scripting.FileSystemObject
GetFileName = fso.GetBaseName(fname)

您的法典之所以停止过短,是因为InStr从护法开始起就一直工作到尾声,并停下来,不管它在哪里找到。 档案名称“Clockings8.mis06042009 120442.fin”包含两个时期。 因此,你应使用InStrRev,而不是从扼杀结束开始搜寻。

问题回答

与档案系统连接 像戴维这样的目标是一个好的想法。 如果你不希望(而且有原因说明你可能不愿意)与档案系统合作。 简单的解决办法: 从档案中删除所有特性,档案名称从最后版面起。

这里我指的是:

Dim fn As String
fn = "Clockings8.mis06042009 120442.fin"

Dim idx As Integer
idx = InStrRev(fn, ".")
GetFileName = Mid(fn, 1, idx - 1)

如果您的档案名称没有被遗忘,但档案名称中有一些地方,那么这种方法将退回坏结果。





相关问题
热门标签