2015-03-20 15 views
10

Geçici klasörü ortam değişkenlerinden almak için System.IO.Path.GetTempPath() yöntemini kullanıyorum. Bununla birlikte, bunun mevcut Kullanıcı için TEMP veya TMP değişkenini her zaman iade edeceğini, aksi takdirde Sistem TEMP veya TMP değişkenini döndüreceğini buluyorum.Özellikle Sistem TEMP Yolu C içerisine alınma #

Sistem TEMP değişkenini her zaman almanın bir yolu var mı?

SO ile ilgili diğer birçok sorunun, bu yöntemin nasıl döndürüleceğine nasıl karar verdiği konusunda MSDN'den alınan belgelere başvuruda bulunduğu Path.GetTempPath() yöntemi hakkında bilgim var. Bu yöntemin MSDN'den davranışının farkındayım ve Sistem Geçici Klasörünü aldığımdan emin olmak için başka bir yol olup olmadığını soruyorum.

cevap

21

Belki de Environment.GetEnvironmentVariable yöntemini arıyorsunuz.

Bu kullanım Size kullanıcının% TEMP% klasörüne verir:

Environment.GetEnvironmentVariable("TEMP"); 

böyle olarak C: \ Users \ KullanıcıAdım \ AppData Local \ Temp \

Ve bu size sistemin% verir TEMP% klasörü:

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

C: \ WINDOWS \ TEMP

+1

Yanıtlamayan kişi değilim, ama sanırım aşağılandığınızdan şüphelendiniz, çünkü soruyu cevaplamaya çalışırken, ** 'Environment.GetEnvironmentVariable' yöntemini kullanmanızın ** ne anlama geldiğini söylemediniz. Özellikle OP, “* Sistem TEMP değişkeni *” ne sahip olmak istediğini ve bunun nasıl yapıldığını * söylemediniz. Başka bir deyişle, cevabınız en iyi değildir. –

+1

@WaiHaLee, girişleriniz için teşekkürler. Verilecek parametreleri vermek için şimdi cevabımı düzenledim. Umarım bu, cevabı daha eksiksiz hale getirir. – sudheeshix

+0

Araştırmamda buna rastladım ve hedef parametreyi kaçırdım. Bu ortam değişkenleriyle ilgili sorunlardan kaçınmak için sistem temp yerine genel uygulama veri klasörünü kullanmaya karar verdim. – Brian