SORU
24 ŞUBAT 2009, Salı


Nasıl belirli bir uzantısı ile geçici bir dosya oluşturabilirim .net?

Bir ile benzersiz bir geçici dosya oluşturmak gerekiyor .csv uzantısı.

Şu an yaptığım şey bu

string filename = System.IO.Path.GetTempFileName().Replace(".tmp", ".csv");

Ancak, bu benim garanti etmez .csv dosyası benzersiz olacak.

Şansını hiç çarpışma çok düşük bir eğer silmek istemiyorum düşünün. (özellikle biliyorum tmp dosyaları), ama bu kod bana iyi görünüyor değil.

Elbette gönderebilirim el ile oluşturmak rasgele dosya adları kadar ben üzerinizde bir benzersiz bir (hangi bir sorun olmaz) ama ben merak etmiyor musun yoksa başkaları bulmuş güzel bir şekilde anlaşma ile bu sorun.

CEVAP
24 ŞUBAT 2009, Salı


Garantili (istatistiksel olarak) benzersiz olması için:

string fileName = System.IO.Path.GetTempPath()   Guid.NewGuid().ToString()   ".csv";

(Bir çarpışma ihtimallerinin üzerinde wiki makalesinden alıntı:

...yıllık riskli bir çarpmış bir meteor olduğu tahmin edilmektedir demek ki 17 milyar [19], şans bu olasılık hakkında 0.00000000006. (6 × 10-11), bu oran eşdeğer trilyonlarca birkaç on oluşturma Bir yıl içinde olacak biçimde ve bir sahip yinelenen. Diğer bir deyişle, sadece sonra üreten 1 milyar olacak biçimde her önümüzdeki 100 yıl için ikinci, sadece bir oluşturma olasılığı yinelenen yüzde 50 olacaktır. Bu yinelenen olacak bir olasılık dünya üzerindeki her insanın, eğer P gibi 600 milyon olacak biçimde var

EDİT: JaredPar yorumlarına bakın Lütfen.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • El SalvaLobo

    El SalvaLobo

    10 Temmuz 2006
  • Kassem G

    Kassem G

    25 EKİM 2006
  • SRC RECORDS

    SRC RECORDS

    2 EKİM 2006