2009-07-14 26 views
7

thể trùng lặp:
How can I create a temp file with a specific extension with .net ?Tạo một tên tập tin tạm thời độc đáo với một phần mở rộng cho sử dụng .NET

Có thể tạo ra một tập tin tạm thời trong .NET bằng cách gọi

string fileName = System.IO.Path.GetTempFileName(); 

Điều này sẽ tạo tệp có đuôi .TMP trong thư mục tạm thời.

Điều gì sẽ xảy ra nếu bạn đặc biệt muốn tiện ích mở rộng khác? Vì lợi ích của ví dụ này, hãy nói rằng tôi cần một tệp kết thúc bằng .TR5.

Việc rõ ràng (và buggy) Giải pháp là để gọi

string fileName = Path.ChangeExtension(Path.GetTempFileName(), "tr5")) 

Những vấn đề ở đây là:

  • Nó vẫn tạo ra một tập tin rỗng (ví dụ tmp93.tmp) trong thư mục temp, mà bây giờ sẽ treo quanh vô thời hạn
  • Không có gurantee rằng tên tệp kết quả (tmp93.tr5) chưa tồn tại

Có cách nào đơn giản và an toàn để tạo tệp tạm thời có lưu lượng tệp cụ thể không?

Trả lời

1

Tôi không biết nếu có một phương pháp hỗ trợ để tạo ra một phần mở rộng khác hơn là .tmp, nhưng điều này sẽ cung cấp cho bạn một tập tin duy nhất:

string fileName = Path.ChangeExtension(Path.GetTempFileName(), Guid.NewGuid().ToString() + "tr5")) 

Không phải là thanh lịch giải pháp và tôi không chắc chắn nếu bạn cần phải sau đó lấy dựa trên phần mở rộng cụ thể, nhưng bạn vẫn có thể viết một mô hình ngay cả đối với điều này.

+0

Tôi đã nhận thấy rằng sau khi tôi đăng nó. –

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