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

  • Blendtec

    Blendtec

    30 EKİM 2006
  • case LianLi

    case LianLi

    28 Mayıs 2010
  • theKGB65

    theKGB65

    24 Aralık 2007