主题:如何获取"原汁原味"的路径
好久没来,向诸位问个好先。
Vfp可以用GETDIR()函数获取某个文件夹/目录的绝对路径,只是全部为大写字母。由于Windows的文件(夹)命名不区分大小写,因此用这个全部大写的路径没有问题,只是有时候看起来不怎么好看。比如:我的文件夹是 D:\MyFirstProject,一眼看去3个单词,意思明了。但如果是 D:\MYFIRSTPROJECT,看着就不清晰。
要得到"原汁原味"的路径,可以调用WinAPI函数,这里俺使用Vfp自己的函数编程实现。
VFP9扩展了ADIR()函数,它的第4参数为1时,得到文件(夹)原本的名字,利用该函数编程如下:
cPath=GETDIR("","","",64)
IF EMPTY(cPath)
RETURN
ENDIF
nBackslash=OCCURS('\', cPath)
IF nBackslash>1
nBsPosition=3
FOR nI=2 TO nBackslash
nBsNextPosition=AT("\",cPath,nI)
cTmpPath=LEFT(cPath,nBsNextPosition-1)
=ADIR(aTmpPath,cTmpPath,"D",1)
cTmpPath=aTmpPath(1)
cPath=STUFF(cPath, nBsPosition+1, nBsNextPosition-nBsPosition-1, cTmpPath)
nBsPosition=nBsNextPosition
ENDFOR
ENDIF
?cPath
呵呵,抛个砖。
Vfp可以用GETDIR()函数获取某个文件夹/目录的绝对路径,只是全部为大写字母。由于Windows的文件(夹)命名不区分大小写,因此用这个全部大写的路径没有问题,只是有时候看起来不怎么好看。比如:我的文件夹是 D:\MyFirstProject,一眼看去3个单词,意思明了。但如果是 D:\MYFIRSTPROJECT,看着就不清晰。
要得到"原汁原味"的路径,可以调用WinAPI函数,这里俺使用Vfp自己的函数编程实现。
VFP9扩展了ADIR()函数,它的第4参数为1时,得到文件(夹)原本的名字,利用该函数编程如下:
cPath=GETDIR("","","",64)
IF EMPTY(cPath)
RETURN
ENDIF
nBackslash=OCCURS('\', cPath)
IF nBackslash>1
nBsPosition=3
FOR nI=2 TO nBackslash
nBsNextPosition=AT("\",cPath,nI)
cTmpPath=LEFT(cPath,nBsNextPosition-1)
=ADIR(aTmpPath,cTmpPath,"D",1)
cTmpPath=aTmpPath(1)
cPath=STUFF(cPath, nBsPosition+1, nBsNextPosition-nBsPosition-1, cTmpPath)
nBsPosition=nBsNextPosition
ENDFOR
ENDIF
?cPath
呵呵,抛个砖。