Estoy tratando de manejar rutas de archivos más largas en mi aplicación de Windows.C++ WinAPI: manejo de largas rutas de archivos/nombres
Actualmente, tengo un cuadro de texto (cuadro de edición) en el que un usuario puede escribir una ruta de archivo absoluta. luego leí que la ruta del archivo con tipo, utilizando GetWindowText
, en una cadena declarada como tal: TCHAR FilePath[MAX_PATH];
Obviamente, aquí estoy confiando en la constante MAX_PATH
que me limita a 260 caracteres. Entonces, para manejar nombres más largos de archivos/rutas podría ampliar mi matriz TCHAR así: TCHAR FilePath[32767];
.
¿O hay una manera mejor? ¿Podría usar una matriz de longitud variable? (TCHAR FilePath[];
¿es esto posible en C++? - lo siento, soy bastante nuevo en esto).
¡Gracias de antemano!
Aquí está todo el fragmento de código de lo que he mencionado anteriormente:
TCHAR FilePath[MAX_PATH];
ZeroMemory(&FilePath, sizeof(FilePath));
GetWindowText(hWndFilePath, FilePath, MAX_PATH);
Ese es exactamente el propósito de 'MAX_PATH' - no puede tener rutas más largas que eso. – casablanca
@casablanca Sin embargo, podría ser una buena idea declararlo con MAX_PATH + 1 para el carácter final '\ 0'. – luiscubal
@luiscabal: Acabo de comprobar [MSDN] (http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath) y parece que MAX_PATH incluye el terminador nulo. – casablanca