2009-04-15 28 views

Trả lời

43

sử dụng

Path.GetTempPath(); 

hoặc

Path.GetTempFileName(); 

Như nhà bình luận chỉ ra, GetTempFileName() là không threadsafe - nhưng bạn có thể xây dựng tên tập tin duy nhất dựa trên GUID.

+4

Lưu ý rằng GetTenpFileName sức mạnh cần phải được gọi là nhiều thời gian do điều kiện đua vốn có (một cái gì đó khác có thể tạo ra cùng một tập tin giữa trở về từ GetTempFileName và mở tập tin). – Richard

+0

bạn nói đúng, cảm ơn für thông tin – tanascius

+0

@Richard Bạn có nghĩa là một ứng dụng/quy trình hoặc một luồng khác trong ngữ cảnh ** ứng dụng ** của bạn không? –

7

Sử dụng Windows API chức năng GetTempPath() từ System.IO.Path (xem MSDN)

using System.IO 

... 

myTempPath = Path.GetTempPath(); 

Bạn nên biết rằng hệ thống tập tin cũng có thể thay đổi trong quá trình thực hiện của chương trình của bạn. Đường dẫn tạm thời có thể thay đổi (không thể, được cấp) hoặc tệp tạm thời của bạn có thể đã bị người dùng di chuyển hoặc xóa.

Hãy chuẩn bị để kiểm tra sự tồn tại của nó mỗi khi bạn truy cập và xử lý trường hợp khi nó không được tìm thấy một cách duyên dáng.

11

Những người khác đánh tôi để nó về

System.IO.Path.GetTempPath() 

Nhưng bạn cũng có thể nhìn vào thư mục dữ liệu ứng dụng. Điều đó sẽ cho phép bạn kiểm soát nhiều hơn đối với tệp của mình, như khả năng có 1 lượt chia sẻ cho tất cả người dùng hoặc 1 người dùng cho mỗi người dùng.

Application.CommonAppDataPath 
Application.UserAppDataPath 
0

Nếu bạn cần ứng dụng của bạn để viết thư cho một vị trí tạm thời và làm việc tại tin tưởng một phần, bạn sẽ cần phải nhìn vào IsolatedStorage.

0

Nếu bạn muốn xây dựng tên tập tin tùy chỉnh tạm thời của riêng bạn trong tham chiếu đến một vị trí tạm thời, tôi sử dụng một cái gì đó như thế này, để lột PATH và áp dụng tên tập tin của riêng tôi ...

string wsPDFfile = Path.GetTempPath() + wsStudentID + "_" + Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".pdf"; 
Các vấn đề liên quan