vb 如何通过一个文件的全路径获得该文件所在文件夹

RT.如现在已知"d:\123\123\asd\123.txt",如何获取"d:\123\123\asd"... RT. 如现在已知"d:\123\123\asd\123.txt", 如何获取"d:\123\123\asd" 展开
 我来答
xiaomingtt
2015-08-21 · TA获得超过1752个赞
知道小有建树答主
回答量:917
采纳率:86%
帮助的人:692万
展开全部

解决这个问题有两种方法。

第一种:知道了文件的全路径,那么路径中当然也包含文件所在的文件夹信息,只要从中提取即可。例如,已知文件全路径为“C:\Windows\System32\abc.dll”并赋予变量strPt,可用过下面语句获取文件夹。

left(strPt,instrrev(strPt,"\"))

instrrev函数的作用是从右侧开始查找指定字符串,并返回数值,此处返回值为20.left函数的作用是从左往右取N个字符,此例中取20个,最后结果为:C:\Windows\System32\。

第二种方法:使用FileSystemObject对象。代码如下:

dim fso as object, strFolder as object
set fso = createobject("scripting.filesystemobject")
set strFolder = fso.getfolder("C:\Windows\System32\abc.dll")
msgbox strFolder.path

文件系统对象FSO的英文全称是File System Object ,这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法。通过采用object.method这种在面向对象编程中广泛使用的语法,将一系列操作文件和文件夹的动作通过调用对象本身的属性直接实现。

940616547
2014-02-18 · TA获得超过189个赞
知道答主
回答量:138
采纳率:46%
帮助的人:54万
展开全部
'编写函数,获取
Private Function GetLuJIn(ByVal a As String) As String
    Dim i As Long
    For i = Len(a) To 1 Step -1
        If mid(a,i,1) = "\" Then '获取最后一个"\"位置
            GetLuJin = Left(a,i-1) '函数返回最后一个"\"前面的东西
            Exit Function '获取之后,函数没什么事了,退出
        End if
    Next i
End Function
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dsq2006
2014-02-18 · TA获得超过237个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:93.1万
展开全部
dim s as string
dim i
s="d:\123\123\asd\123.txt"

i=InStrRev(s,"\") ''最右侧 \ 字符位置
s =Left$(s, i-1) ''s即是路径(文件夹)d:\123\123\asd

debug.print s ''显示 d:\123\123\asd
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
涐吢铱舊囿儚
2014-02-18 · TA获得超过488个赞
知道小有建树答主
回答量:512
采纳率:100%
帮助的人:584万
展开全部
Private Sub Command1_Click()
   Dim i&, s$
   s = "d:\123\123\asd\123.txt"
   i = InStrRev(s, "\")
   If (i = 3) Then
      s = Left$(s, i)
   Else
      s = Left$(s, i - 1)
   End If
   MsgBox "路径为:" & s, 32
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式