主题:怎么才能得得文件名?
hcn008
[专家分:380] 发布于 2007-04-27 21:07:00
比如:
C:\Documents and Settings\Administrator\桌面\2007.jpg
我现在想要得到:2007.jpg
这怎么实现呢?谁能帮一下,先谢谢了!
回复列表 (共14个回复)
沙发
wangsdong [专家分:21390] 发布于 2007-04-27 22:06:00
使用split来获取
板凳
刘裕杭州 [专家分:190] 发布于 2007-04-27 23:01:00
[quote]使用split来获取[/quote]
是的,用split进行分割后取出最后的字符串
例如
dim filepath as string
filepath="C:\Documents and Settings\Administrator\桌面\2007.jpg"
dim fileStringArray() as string
dim fileName as string
fileStringArray=strings.split(filepath,"\")
fileName = fileStringArray(ubound(fileStringArray))
那么fileName 保存的就是你需要的文件名。
3 楼
CharlesKing [专家分:340] 发布于 2007-04-28 09:24:00
楼上,不是我总找你的问题..
这里是ASP的版,你用的什么语言?
vb.net吗?
vb.net只需要:
Dim strFilePath As String
Dim strFileName As String
strFilePath = "C:\Documents and Settings\Administrator\桌面\2007.jpg"
strFileName = System.IO.Path.GetFileName(strFilePath)
就可以取到文件名了..
ASP 纠正点语法错误:
dim filepath
filepath="C:\Documents and Settings\Administrator\桌面\2007.jpg"
dim fileStringArray
dim fileName
fileStringArray=split(filepath,"\")
fileName = fileStringArray(ubound(fileStringArray))
4 楼
wzqsuper [专家分:270] 发布于 2007-04-28 16:31:00
借鉴一下!
5 楼
hcn008 [专家分:380] 发布于 2007-04-28 16:40:00
有答案了,这样也可了的,我用的就是这个.
intSpl=instr(StrReverse(request.Form("file1")),"\") '最后一个"\"号,右数的位置
filename=right(request.Form("file1"),intSpl-1)
6 楼
CharlesKing [专家分:340] 发布于 2007-04-28 17:23:00
虽然同样可以实现..
但刘裕杭州回答的我修正语法的那种方法思想比这个好..
7 楼
hcn008 [专家分:380] 发布于 2007-04-28 17:29:00
谢谢大家了!
8 楼
刘裕杭州 [专家分:190] 发布于 2007-04-28 20:10:00
如果你去查一下vbAPI会知道split是strings下的一个函数,虽然VB给我们提供了方便可以直接使用split当全局函数使用,但这样的程序不严密。比如:曾经我做过的Access VBA的项目,没有使用strings.split,而是直接使用split函数,最后程序就是不能运行,所以,为了程序的健壮性,最好加上Strings。
对于定义变量,对于一个做过一些项目的人都会在定义变量时知名类型,这样有助于后面程序的严密,减少难于检查的错误出现。但这不是不需用,在有的情况下只能用模糊类型的变量,比如我们需要用一个函数返回文件对话框返回的文件名,如果文件不存在,返回假值,那么函数就是一定情况下返回字符串,一定情况下返回boolean型,所以得到函数值的参数就要定义模糊变量(这只是其中一种方法,还有其他好多种方法,不妨大家可以去想想。)。所以呀我写这段程序是根据以前的经验来考虑的。
至于
intSpl=instr(StrReverse(request.Form("file1")),"\") '最后一个"\"号,右数的位置
filename=right(request.Form("file1"),intSpl-1)
这段程序运行的时间复杂度稍微大了一点(可以参考CPU的运行周期说明),并且right应该写成Strings.right,instr写成Strings.instr,也应该因为它们也是Strings下的函数。
9 楼
CharlesKing [专家分:340] 发布于 2007-04-29 11:10:00
变量前缀是最基础的东西..
呵呵..还vbAPI,里查split是Strings下的一个函数呢..
我说的是实际问题,那段程序实际在.asp文件,IIS环境下是运行不起来的
你自己动手试试就行了..
不要跟我讲你懂什么API,我用vb+api做过游戏和外挂的..
你说的Strings.split就是面向对象
10 楼
CharlesKing [专家分:340] 发布于 2007-04-29 11:13:00
还有.
8楼的朋友,
你也不用再拿你的理论出来和我讲了..
只要帮楼主解决了问题就行了.
我语言组织没你强,我到初三就没上了.
但是,不是只有你才懂理论的..
我来回复