मुझे एक .csv एक्सटेंशन के साथ एक अद्वितीय अस्थायी फ़ाइल जनरेट करने की आवश्यकता है।
अभी मैं जो करता हूं, वह है
string filename = System.IO.Path.GetTempFileName().Replace(".tmp", ".csv");
हालाँकि, यह गारंटी नहीं देता है कि मेरी .csv फ़ाइल अद्वितीय होगी।
मुझे पता है कि मुझे कभी मिली टक्कर बहुत कम है (खासकर अगर आप समझते हैं कि मैं .tmp फाइलें नहीं हटाता हूं), लेकिन यह कोड मुझे अच्छा नहीं लगता।
निश्चित रूप से मैं मैन्युअल रूप से यादृच्छिक फ़ाइल नाम उत्पन्न कर सकता था जब तक कि मैं अंततः एक अद्वितीय (जो एक समस्या नहीं होनी चाहिए) ढूंढता हूं, लेकिन मैं यह जानने के लिए उत्सुक हूं कि क्या दूसरों ने इस समस्या से निपटने का एक अच्छा तरीका ढूंढ लिया है।
GetTempFileName()
बनाता है। - यदि आप तुरंत स्ट्रिंग को किसी और चीज़ में बदल देते हैं, तो आपने अपनी अस्थायी निर्देशिका में एक नई शून्य बाइट फ़ाइल बनाई (और जैसा कि अन्य ने नोट किया है, यह अंततः तब विफल हो जाएगा जब आप 65535 फ़ाइलों को वहां मारते हैं ...) - - इससे बचने के लिए, उस फ़ोल्डर में आपके द्वारा बनाई गई किसी भी फाइल को हटाना सुनिश्चित करें (इसमें जो लौटे हैं GetTempFileName()
, आदर्श रूप से अंत में ब्लॉक में)।