Saltar al contenido

Resolverlos en Tauri

Cómo se obtiene cada ruta, qué identificador las determina, y por qué cambiarlo deja los datos de tus usuarios en un directorio que tu aplicación ya no mira.

Cómo se piden

Desde Rust, a través del manejador de la aplicación:

Rust
use tauri::Manager;let rutas = app.path();let datos   = rutas.app_data_dir()?;     // lo que el usuario creólet config  = rutas.app_config_dir()?;   // lo que eligiólet cache   = rutas.app_cache_dir()?;    // lo reconstruiblelet logs    = rutas.app_log_dir()?;      // los registroslet temp    = std::env::temp_dir();      // los temporales// y siempre, antes de escribir: el directorio puede no existir todavíastd::fs::create_dir_all(&datos)?;

La última línea es la que falta en la mitad del código que se escribe. Tauri devuelve la ruta correcta, no garantiza que el directorio exista — y en la primera ejecución de un usuario nuevo, no existe. Es el fallo de «funciona en mi máquina» más literal posible: en la tuya lo creaste hace meses.

El identificador que las determina

Todas esas rutas se construyen a partir del identificador de tu aplicación en la configuración — el mismo del nivel 7.2, y el mismo que en macOS determina la identidad de firma del nivel 35.3.

Tres cosas a la vez, todas silenciosas. Por eso la regla del nivel 7.2 —elegir el identificador el primer día y no tocarlo— tiene aquí su segunda razón, y la más cara.

Y si hay que cambiarlo

A veces es inevitable —un renombrado de producto, un cambio de dominio—. Entonces es una migración, con la misma forma que la del nivel 35.3:

Desde el frontend

También se pueden pedir desde el frontend, con el plugin correspondiente, y aquí aplica la fase V: hacerlo requiere un permiso, y ese permiso deja que el frontend conozca rutas del disco del usuario.

La pregunta del nivel 14.4 se aplica igual: ¿para qué las necesita? Si es para pasárselas a un comando de lectura, el diseño correcto es que el comando sepa dónde están sus cosas y el frontend no necesite saberlo. Si es para mostrarle al usuario dónde se guardan sus datos —que es un caso legítimo y útil— basta con un comando que devuelva esa cadena para enseñarla.

En una aplicación bien diseñada, el frontend no conoce ninguna ruta.