Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How can I get short path name in VFP?
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Fonctions Windows API
Divers
Thread ID:
00711861
Message ID:
00711866
Vues:
24
>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
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform