Estoy tratando de utilizar nombres de archivo como la clave en boost::PropertyTreeBoost Árbol de la propiedad con nombre de archivo como clave
Sin embargo, el '' el carácter en un nombre de archivo como "ejemplo.txt" hace que se agregue una capa adicional dentro del árbol de propiedades. La solución más obvia sería reemplazar '.' con otro personaje, pero es probable que haya una mejor manera de hacerlo, como con un personaje de escape.
En el siguiente ejemplo, el valor 10 se colocará en el nodo 'txt', un elemento secundario de 'example'. En cambio, quiero que el valor 10 se almacene en el nodo 'example.txt'.
ptree pt;
pt.put("example.txt", 10);
¿Cómo puedo usar el nombre completo de un solo nodo?
Gracias de antemano por su ayuda!
Un lado: Usar nombres de archivo como claves es complicado. ¿Has considerado lo que sucede cuando hay enlaces duros? Enlaces simbólicos? ¿Cambios de nombre que ocurren fuera de su proceso? ¿Insensibilidad a las mayúsculas y minúsculas en Windows? ¿El hecho de que Windows trunca espacios finales en nombres de archivos? – asveikau
Afortunadamente esto es para una operación de solo lectura con la condición de que el contenido del directorio no cambie durante esta operación. Sin embargo, le agradezco que señale las preocupaciones adicionales. –
Mi punto es que algunas de estas cosas (como la existencia de enlaces) podrían causar falsos negativos. Es algo a tener en cuenta, especialmente si usa esto para algún tipo de característica de seguridad. – asveikau