2015-03-20 29 views
10

Używam metody System.IO.Path.GetTempPath() do pobierania folderu tymczasowego ze zmiennych środowiskowych. Jednakże, stwierdzam, że zawsze zwróci zmienną TEMP lub TMP dla bieżącego użytkownika, jeśli istnieje, w przeciwnym razie zwróci zmienną System TEMP lub TMP.W szczególności Uzyskiwanie ścieżki systemowej TEMP w języku C#

Czy istnieje sposób na uzyskanie zmiennej System TEMP?

Jestem świadomy kilku innych pytań na SO dotyczących metody Path.GetTempPath(), gdzie odpowiedzi odnoszą się do dokumentacji z MSDN o tym, jak ta metoda decyduje, co zwrócić. Jestem świadomy zachowania tej metody z MSDN i pytam, czy istnieje inny sposób, aby upewnić się, że otrzymuję System Temporary Folder.

Odpowiedz

21

Być może szukasz metody Environment.GetEnvironmentVariable.

Takie użycie daje% TEMP% folderu użytkownika:

Environment.GetEnvironmentVariable("TEMP"); 

takie jak C: \ Users \ MyUserName \ AppData \ Local \ Temp

A to daje systemu% Temp%:

Environment.GetEnvironmentVariable("TEMP", EnvironmentVariableTarget.Machine); 

przykład C: \ WINDOWS \ temp

+1

Nie jestem spadkobiercą, ale podejrzewam, że zostałeś odrzucony, ponieważ podczas próby odpowiedzi na to pytanie nie powiedziałeś ** jak ** użyć 'Environment.GetEnvironmentVariable', czyli jakie argumenty przekazać, itp. W szczególności OP chciał wiedzieć, jak "* uzyskać zmienną System TEMP *" i nie powiedziałeś * jak * to zrobić. Innymi słowy, twoja odpowiedź jest najlepiej niekompletna. –

+1

@WaiHaLee, dzięki za twoje dane wejściowe. Zmieniłem teraz moją odpowiedź, aby przekazać parametry. Mam nadzieję, że dzięki temu odpowiedź stanie się bardziej kompletna. – sudheeshix

+0

Natknąłem się na to w moich badaniach i musiałem przegapić parametr docelowy. W efekcie zdecydowałem się użyć wspólnego folderu danych aplikacji zamiast temp systemu, aby uniknąć potencjalnych problemów z tymi zmiennymi środowiskowymi. – Brian