Tôi cần tạo một tệp tạm thời duy nhất có phần mở rộng .csv.
Những gì tôi làm ngay bây giờ là
string filename = System.IO.Path.GetTempFileName().Replace(".tmp", ".csv");
Tuy nhiên, điều này không đảm bảo rằng tệp .csv của tôi sẽ là duy nhất.
Tôi biết khả năng xảy ra va chạm là rất thấp (đặc biệt nếu bạn cho rằng tôi không xóa các tệp .tmp), nhưng mã này không phù hợp với tôi.
Tất nhiên tôi có thể tự tạo tên tệp ngẫu nhiên cho đến khi cuối cùng tôi tìm thấy một tên duy nhất (không phải là vấn đề), nhưng tôi tò mò muốn biết liệu những người khác có tìm ra cách hay để giải quyết vấn đề này không.
GetTempFileName()
tạo một tệp mới mỗi lần bạn gọi nó. - Nếu bạn ngay lập tức thay đổi chuỗi thành một thứ khác, bạn vừa tạo một tệp byte 0 mới trong thư mục tạm thời của mình (và như những người khác đã lưu ý, điều này cuối cùng sẽ khiến nó bị lỗi khi bạn nhấn 65535 tệp trong đó ...) - - Để tránh điều này, hãy đảm bảo xóa bất kỳ tệp nào bạn tạo trong thư mục đó (bao gồm cả những tệp được trả về GetTempFileName()
, lý tưởng là trong một khối cuối cùng).