Rutas a directorios y archivos
Aunque el trabajo cotidiano y directo con los servicios de LibreOffice resuelve el manejo de rutas y la creación de archivos y directorios de forma integrada con las utilidades básicas del sistema operativo, haciendo que parezca simple lo que es en realidad complejo; pero también nos podemos encontrar con la necesidad de gestionar el uso de rutas y el acceso a directorios y archivos desde OOo Basic.
LibreOffice hereda de OpenOffice la cualidad de ser multiplataforma, por lo que hace uso de rutas de archivo y directorios en formato URL.
file:///home/usuario/Directorio/archivo.ods
En este formato se usan los caracteres 0-9, a-z y A-Z, siendo convertidos el resto a una codificación establecida. Por ejemplo, el espacio en blanco se convierte en %20. Es conveniente, por tanto, utilizar siempre caracteres aceptados por el formato URL.
Además OOo Basic posee dos funciones muy útiles para trabajar con formato URL:
- ConvertToUrl()
- ConvertFromUrl()
Sub UsoRuta
Dim sRuta As String
sRuta = "/home/yomismo/MiArchivo.ods" -> establezco la ruta local (Windows)
MsgBox sRuta -> y la muestro
sRuta = ConvertToUrl("/home/yomismo/MiArchivo.ods") -> Convierto a formato URL
MsgBox sRuta -> Y la muestro en este formato
sRuta = ConvertFromUrl( sRuta ) -> Regreso al formato local originario
MsgBox sRuta -> Y compruebo que efectivamente es así
End Sub
Fíjate en la diferencia entre el uso de una y otra función, ya que son inversas y complementarias, tanto en su sintaxis como en su funcionamiento.
Siempre que vayamos a trabajar con rutas para acceder a archivos o guardarlos en directorios es conveniente utilizar la función ConvertToUrl() para evitar errores en el acceso. En este contexto, ConvertFromUrl() te puede servir para comprobar que todo funciona según tienes previsto.