我有一个带有此值的vb字符串:c:\program\bin\files
我需要将此字符串转换为此值:files
我需要的只是路径的最后一个文件夹。
路径不固定。它可以是:d:\app\win\7\sp1\update
在这种情况下,字符串必须转换为:update
我认为应该通过向后搜索字符串第一次出现\
并删除它之前的所有内容来完成,包括\
本身。
但显然我不知道该怎么做。 :)
谢谢!
修改
我需要用它来填充ComboBox ......
这就是我正在使用的:
ComboBox1.Items.AddRange(IO.Directory.GetDirectories(appPath & "\Updates\Version"))
它给了我一个ComboBox,如:
c:/program/Updates/Version/Beta1
c:/program/Updates/Version/Beta2
c:/program/Updates/Version/Beta3
c:/program/Updates/Version/Beta4
我想让ComboBox像:
Beta1
Beta2
Beta3
Beta4
答案 0 :(得分:2)
不要试图自己拆开字符串,而是查看System.IO.Path类。
在您的情况下,GetFileName方法可以执行您想要的操作:
lastFolder = System.IO.Path.GetFileName(path)
要使用名称填充组合框,可以使用LINQ查询,如下所示:
ComboBox1.Items.AddRange(
From path
In IO.Directory.GetDirectories(IO.Path.Combine(appPath, "Updates\Version"))
Select IO.Path.GetFileName(path))
此外,在将路径片段连接在一起时,请尝试使用Path.Combine方法。它比加入字符串更安全。
答案 1 :(得分:1)
在VBScript中,这是标记的,你有两个选择。这是在将任何代码编辑到问题之前编写的。
使用InstrR
Instr
,但是从字符串的前面开始。
您还有StrReverse
可以反转字符串。
<强> InStrRev 强>
从字符串的末尾返回一个字符串在另一个字符串中出现的位置。
InStrRev(string1, string2[, start[, compare]])
<强> StrReverse 强>
返回一个字符串,其中指定字符串的字符顺序颠倒过来。
StrReverse(string1)
如果使用文件系统对象,它有一个方法可以专门做你想要的。
GetParentFolderName 方法
返回一个字符串,其中包含指定路径中最后一个组件的父文件夹的名称。
Set fso = CreateObject("Scripting.FileSystemObject") object.GetParentFolderName(path)