Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How can I get short path name in VFP?
Message
General information
Forum:
Visual FoxPro
Category:
Windows API functions
Miscellaneous
Thread ID:
00711861
Message ID:
00711866
Views:
23
>Hi, Everyone,
>
>Please help. I am using an Image Printer which only takes short file path and name, so I must convert the long file name that I use in VFP. So I found GetShortPathName in WIN32API. But I get very unpredictable results: sometimes the function succeds while other times fail with the exactly the same parameters that I pass to the function. The following is the function that atempts to achieve this goal:
>
>LPARAMETERS lpcdir
>IF VARTYPE(m.lpcdir)#"C" OR EMPTY(lpcdir) THEN
>	RETURN []
>ENDIF
>DECLARE integer GetShortPathName IN WIN32API AS API_GetShortPathName String,String@,integer
>LOCAL lcLongPath, lcShortPath, lnReturn
>m.lnReturn = 0
>lcShortPath = SPACE(127)+CHR(0)
>m.lcLongPath = ALLTRIM(m.lpcDir) + CHR(0)
>m.lnReturn = API_GetShortPathName(lcLongPath,@lcShortPath,128)
>IF m.lnReturn >0 THEN
>	m.lcShortPath = ALLTRIM(m.lcShortPath)
>	IF LEN(m.lcShortPath)>0 THEN
>		m.lpcDir = LEFT(m.lcShortPath, LEN(m.lcShortPath)-1)
>	ENDIF
>ENDIF
>RETURN lpcdir
>
>
Have you tried to use the Windows Script Host to get the short path name?
oFSO = CREATEOBJECT("Scripting.FileSystemObject")
* lcfile is the file of interest
oFile = oFSO.GetFile(lcfile)
? oFile.ShortPath
George

Ubi caritas et amor, deus ibi est
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform