Ho un semplice problema. Ho un percorso di un file nella directory utente che assomiglia a questo:C# apre il file, percorso che inizia con% userprofile%
%USERPROFILE%\AppData\Local\MyProg\settings.file
Quando provo ad aprire come file
ostream = new FileStream(fileName, FileMode.Open);
Sputa errore perché tenta di aggiungere %userprofile%
alla corrente directory, in modo che diventi:
C:\Program Files\MyProg\%USERPROFILE%\AppData\Local\MyProg\settings.file
Come faccio a farlo riconoscere che un percorso partendo %USERPROFILE%
è una, non è un percorso relativo assoluto?
PS: Non posso usare
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Perché ho bisogno di aprire solo il file con il suo nome. L'utente specifica il nome. Se l'utente specifica "settings.file", ho bisogno di aprire un file relativo alla dir del programma, se l'utente specifica un percorso che inizia con %USERPROFILE%
o qualche altra cosa che converte in C: \ qualcosa, ho bisogno di aprirlo!
Perché non solo "Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData)'? –
Perché questo è più generale - si presume che la variabile di ambiente passata sarà sempre '% USERPROFILE%' - cosa succede se è qualcos'altro? (che è quello che la domanda si pone - si tratta di espandere la variabile d'ambiente - che l'esempio usato è il profilo utente è incidentale). – Oded
Ah, capisco. Cattivo esempio l'OP ha dato –