From 3ea582e6452d373165d3e9bd8f4325fbc3935501 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Mon, 21 Sep 2026 14:33:18 +0200 Subject: [PATCH] Usa la cartella del DB come fallback per la cartella di lavoro Se non c'e' una cartella di lavoro salvata (o punta a una cartella cancellata), AppContext.BaseDirectory finiva spesso nella cartella di build (bin/Release/...) invece che dove l'utente tiene effettivamente il proprio lavoro. Ora il fallback usa la cartella del DB caricato. Co-Authored-By: Claude Sonnet 5 --- PrepStep/Form1.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/PrepStep/Form1.cs b/PrepStep/Form1.cs index af81858..35053af 100644 --- a/PrepStep/Form1.cs +++ b/PrepStep/Form1.cs @@ -56,8 +56,8 @@ public partial class Form1 : Form BuildUi(); Load += (_, _) => { - InizializzaCartellaLavoro(); InizializzaDatabase(); + InizializzaCartellaLavoro(); }; } @@ -1004,14 +1004,17 @@ public partial class Form1 : Form private static readonly string PercorsoImpostazioni = Path.Combine(CartellaImpostazioni, "ultimo_db.txt"); private static readonly string PercorsoImpostazioniCartella = Path.Combine(CartellaImpostazioni, "ultima_cartella_lavoro.txt"); - /// Propone l'ultima cartella di lavoro usata (se ancora esiste su disco) o, la prima - /// volta, la cartella dell'eseguibile: non richiede mai un CLAUDE.md/repo (a differenza del - /// vecchio TrovaRadiceRepo), quindi funziona identica anche sull'exe pubblicato standalone - /// copiato su un'altra macchina. Sempre modificabile con "Cambia cartella..." in fase 1. + /// Propone l'ultima cartella di lavoro usata (se ancora esiste su disco) o, se non + /// c'è ancora una preferenza salvata (o punta a una cartella cancellata), la cartella dove si + /// trova il DB (più sensata dell'eseguibile: quella è dove l'utente tiene il proprio lavoro, + /// non dov'è installata la app). Richiede quindi che InizializzaDatabase sia già stata + /// chiamata. Sempre modificabile con "Cambia cartella..." in fase 1. private void InizializzaCartellaLavoro() { var ultima = LeggiUltimaCartellaLavoro(); - _cartellaLavoro = ultima is not null && Directory.Exists(ultima) ? ultima : AppContext.BaseDirectory; + _cartellaLavoro = ultima is not null && Directory.Exists(ultima) + ? ultima + : (_dbPath is not null ? Path.GetDirectoryName(_dbPath) : null) ?? AppContext.BaseDirectory; AggiornaLabelCartellaLavoro(); }