tempfile.rb
में खुदाई आप ध्यान देंगे कि Tempfile
Dir::Tmpname
भी शामिल है। अंदर आपको make_tmpname
मिलेगा जो आप पूछते हैं।
Dir::Tmpname.make_tmpname "/tmp/źdźbło", nil
# => "/tmp/źdźbło20121209-1867-1qyptqe"
Dir::Tmpname.make_tmpname(['a', '.png'], nil)
# => "a20121209-2710-wcjbzr.png"
एक ही फाइल में, वहाँ भी Dir::Tmpname.create
जो, आप क्या हासिल करना चाहते हैं पर निर्भर करता, करता है एक छोटे से अधिक make_tmpname
से है। विशेष रूप से, यह पता लगाता है कि किस अस्थायी निर्देशिका का उपयोग करना है (मान लीजिए कि आप * निक्स पर नहीं हैं जहां /tmp
एक वैश्विक रूप से सही धारणा है)। फिर भी, यह देखते हुए का उपयोग करने के लिए एक छोटे से बदसूरत है कि यह एक ब्लॉक की उम्मीद:
Dir::Tmpname.create(['a', '.png']) { }
# => "/tmp/a20140224-15930-l9sc6n.png"
ब्लॉक वहाँ है यदि फ़ाइल मौजूद कोड का परीक्षण और यह एक नए नाम के साथ incrementing मूल्य पर टैग उत्पन्न किया जा सकता है ताकि एक Errno::EEXIST
बढ़ाने के लिए के लिए समाप्त।
धन्यवाद, यही है। फ़ाइल नाम एक्सटेंशन को संरक्षित करने के लिए सरणी तर्क के साथ भी प्रयोग किया जा सकता है: 'Dir :: Tmpname.make_tmpname ([' a ',' .png '], nil) ' – iltempo
@iltempo, आपका स्वागत है। मैंने जवाब में आपका उदाहरण जोड़ा है। – Jan
यह बहुत अच्छा है लेकिन किसी ने भी उल्लेख नहीं किया है कि आपको काम करने के लिए 'tmpdir''' की आवश्यकता है। – KingBob