2015-03-20 43 views
10

Tôi đang sử dụng phương thức System.IO.Path.GetTempPath() để truy xuất thư mục tạm thời từ các biến môi trường. Tuy nhiên, tôi thấy rằng điều này sẽ luôn luôn trả về biến TEMP hoặc TMP cho người dùng hiện tại nếu nó tồn tại nếu không nó sẽ trả về biến TEMP hoặc TMP hệ thống.Cụ thể Lấy Đường dẫn TEMP Hệ thống trong C#

Có cách nào để luôn nhận biến hệ thống TEMP không?

Tôi biết một số câu hỏi khác về SO về phương thức Path.GetTempPath() trong đó câu trả lời là tham chiếu tài liệu từ MSDN về cách thức phương thức này quyết định trả về cái gì. Tôi nhận thức được hành vi của phương pháp này từ MSDN và tôi hỏi nếu có một cách khác để đảm bảo tôi nhận được thư mục tạm thời của hệ thống.

Trả lời

21

Có lẽ bạn đang tìm kiếm phương thức Environment.GetEnvironmentVariable.

sử dụng này mang đến cho bạn% TEMP% thư mục của người dùng:

Environment.GetEnvironmentVariable("TEMP"); 

như C: \ Users \ myusername \ AppData \ \ Temp Local

Và điều này mang đến cho bạn hệ thống của% TEMP% thư mục:

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

chẳng hạn như C: \ WINDOWS \ TEMP

+1

Tôi không phải là downvoter, nhưng tôi nghi ngờ rằng bạn đã downvoted bởi vì trong khi bạn đã cố gắng trả lời câu hỏi, bạn không nói ** cách sử dụng 'Environment.GetEnvironmentVariable', tức là những đối số nào để vượt qua nó, vv Đặc biệt, OP muốn biết cách "* lấy biến TEMP hệ thống *" và bạn không nói * cách * để thực hiện điều đó. Nói cách khác, câu trả lời của bạn là chưa hoàn chỉnh nhất. –

+1

@WaiHaLee, cảm ơn thông tin của bạn. Đã chỉnh sửa câu trả lời của tôi ngay bây giờ để cung cấp cho các thông số được thông qua. Hy vọng điều này làm cho câu trả lời hoàn chỉnh hơn. – sudheeshix

+0

Tôi đã xem xét điều này trong nghiên cứu của mình và phải bỏ qua thông số đích. Tôi đã quyết định sử dụng thư mục dữ liệu ứng dụng chung thay vì tạm thời của hệ thống để tránh bất kỳ vấn đề nào có thể xảy ra với các biến môi trường này. – Brian

Các vấn đề liên quan