回 帖 发 新 帖 刷新版面

主题:如何获取"原汁原味"的路径

好久没来,向诸位问个好先。

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

呵呵,抛个砖。

回复列表 (共3个回复)

沙发

高!很有用!
愿更多的高人,拿出更多的杰作!

板凳

不错,呵呵

3 楼

效果是不错,只是程序看起来费劲,楼主能否注释一下,或者讲解一下算法思路?谢谢楼主!

我来回复

您尚未登录,请登录后再回复。点此登录或注册