El tema es que se puede mandar archivo con formato de nombres largos
en linea de comando, pero encerrado en doble comillas. Por tanto sería al tiempo de dar la linea de comandos, no al recibirla.
Si ya lo has recibido como nombre corto, entoces colega:
Cita:
The GetFullPathName function retrieves the full path and filename of a specified file.
DWORD GetFullPathName(
LPCTSTR lpFileName, // address of name of file to find path for
DWORD nBufferLength, // size, in characters, of path buffer
LPTSTR lpBuffer, // address of path buffer
LPTSTR *lpFilePart // address of filename in path
);
Parameters
lpFileName
Points to a null-terminated string that specifies a valid filename. This string can use either short (the 8.3 form) or long filenames.
nBufferLength
Specifies the size, in characters, of the buffer for the drive and path.
lpBuffer
Points to a buffer that contains the null-terminated string for the name of the drive and path.
lpFilePart
Points to a variable that receives the address (in lpBuffer) of the final filename component in the path. This filename component is the long filename, if any, rather than the 8.3 form of the filename.
|
usa esto sacado de la Win32 Developer's guide, y por supuesto, su omónimo:
Cita:
The GetShortPathName function obtains the short path form of a specified input path.
DWORD GetShortPathName(
LPCTSTR lpszLongPath, // points to a null-terminated path string
LPTSTR lpszShortPath, // points to a buffer to receive the null-terminated short form of the path
DWORD cchBuffer // specifies the size of the buffer pointed to by lpszShortPath
);
Parameters
lpszLongPath
Points to a null-terminated path string. The function obtains the short form of this path.
lpszShortPath
Points to a buffer to receive the null-terminated short form of the path specified by lpszLongPath.
cchBuffer
Specifies the size, in characters, of the buffer pointed to by lpszShortPath.
|
Saludos