sungmoo 发表于 2010-1-20 12:17 
*试一下
di substr(c(filename),1,length(c(filename))-strpos(reverse(c(filename)),"\"))
di substr(c(filename),1,1+length(c(filename))-strpos(reverse(c(filename)),"\"))
这种方法对于相对路径打开的文件似乎无效:
. use D:\stata\Stata11\ado\base\a\auto.dta, clear //绝对路径
(1978 Automobile Data)
. di substr(c(filename),1,length(c(filename))-strpos(reverse(c(filename)),"\"))
D:\stata\Stata11\ado\base\a
. 
. di substr(c(filename),1,1+length(c(filename))-strpos(reverse(c(filename)),"\"))
D:\stata\Stata11\ado\base\a\
. cd D:\stata\Stata11\ado\base\a
D:\stata\Stata11\ado\base\a
. use auto, clear //相对路径
(1978 Automobile Data)
. di substr(c(filename),1,length(c(filename))-strpos(reverse(c(filename)),"\"))
auto.dta
. 
. di substr(c(filename),1,1+length(c(filename))-strpos(reverse(c(filename)),"\"))
auto.dta
. di reverse(substr(reverse(c(filename)),1+strpos(reverse(c(filename)),"\"),.))
auto.dta
. 
. di reverse(substr(reverse(c(filename)),strpos(reverse(c(filename)),"\"),.))
.