Mam prosty problem. Mam ścieżkę do pliku w katalogu użytkownika, który wygląda tak:C# otwarty plik, ścieżka rozpoczynająca się od% userprofile%
%USERPROFILE%\AppData\Local\MyProg\settings.file
Kiedy próbuję otworzyć go jako plik
ostream = new FileStream(fileName, FileMode.Open);
on pluje błąd, ponieważ próbuje dodać %userprofile%
do prądu katalog, więc staje się:
C:\Program Files\MyProg\%USERPROFILE%\AppData\Local\MyProg\settings.file
Jak zrobić, żeby ją rozpoznać, że ścieżka zaczynając %USERPROFILE%
jest absolutna, a nie ścieżka względna?
PS: Nie mogę używać
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Bo trzeba po prostu otworzyć plik o nazwie. Użytkownik określa nazwę. Jeśli użytkownik określi "plik settings.file", muszę otworzyć plik w stosunku do katalogu programu, jeśli użytkownik określi ścieżkę rozpoczynającą się od %USERPROFILE%
lub inną rzeczą, która konwertuje do C: \ coś, muszę go również otworzyć!
Dlaczego po prostu 'Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData)'? –
Ponieważ jest to bardziej ogólne - zakładasz, że przekazana zmienna środowiskowa zawsze będzie miała wartość "% USERPROFILE%" - a jeśli to coś innego? (o to właśnie pyta - pyta o rozszerzenie zmiennej środowiskowej - że użyty przykład to profil użytkownika jest przypadkiem). – Oded
Ahh, rozumiem. Zły przykład OP dał –