Convert a short pathname to a longTag(s): Powerscript
The API GetLongPathName was introduced with Win98 and is unavailable on Win95 or WinNT but OK with XP.
[local external definition]
FUNCTION ulong GetLongPathName( &
REF String lpszShortPath, &
REF String lpszLongPath, &
ULong cchBuffer ) &
LIBRARY "kernel32.dll" ALIAS FOR "GetLongPathNameA"
[powerscript]
ContextKeyword lcxk_base
string ls_path_short
string ls_path_long
string ls_values[]
this.GetContextService("Keyword", lcxk_base)
lcxk_base.GetContextKeywords("temp", ls_values)
IF Upperbound(ls_values) > 0 THEN
ls_path_short = ls_values[1]
ELSE
ls_path_short = "*UNDEFINED*"
END IF
MessageBox("short",ls_path_short)
// ex : C:\DOCUME~1\Real\LOCALS~1\Temp
ls_path_long = space(255)
GetLongPathName(ls_path_short, ls_path_long, 255);
MessageBox("long",ls_path_long)
// ex : C:\Documents and Settings\Real\Local Settings\Temp
To do the conversion long to short, use GetShortPathName API. In PB10, you may need to use the Unicode version, so use the "ALIAS GetLongPathNameW" instead.
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com