C# 2008 SP1C# ottenere il percorso del% AppData%
Sto usando il codice qui sotto:
dt.ReadXml("%AppData%\\DateLinks.xml");
Tuttavia, io sono sempre un'eccezione che indica la posizione in cui la mia applicazione è in esecuzione da:
Impossibile trovare una parte del percorso 'D: \ Projects \ SubVersionProjects \ CatDialer bin \ Debug \ \% AppData% \ DateLinks.xml'.
Ho pensato che il %AppData%
dovrebbe trovare il percorso relativo. Quando vado Start|Run|%AppData%
, Windows Explorer mi porta in quella directory.
Non riesco a inserire il percorso completo, poiché l'utente è diverso su ogni macchina client.
Molte grazie per qualsiasi consiglio,
+1 per offrire una soluzione reale, senza fare affidamento sull'ambiente. Per aggiungere alla risposta: non tutte le funzioni che gestiscono i nomi di file espande le variabili di ambiente. Di fatto, in genere devi farlo esplicitamente, altrimenti non funziona e ti ritroverai con%%% di cartelle. Inoltre, non è necessario che l'ambiente sia presente, in alcuni casi quando si esegue un programma con un altro account utente, l'ambiente dell'utente non verrà caricato e% Appdata% sarà vuoto. Ecco perché vorresti usare le API documentate per ottenere quelle cartelle (a meno che tu non stia usando i file batch, comunque). – Joey
@Johannes: Buone informazioni lì. Ho appena modificato la mia risposta come postata, ma renderò più chiaro che GetFolderPath è decisamente preferibile su ExpandEnvironmentVariable. – Noldorin
+1 per Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), ero dietro questo per un paio di giorni. –