2013-04-12 10 views
30

मेरे पास उदाहरण के लिए एक टेक्स्ट फ़ाइल है। रुबी में जांच करने का सबसे अच्छा तरीका क्या है कि एक फ़ाइल खाली है? File.size('test.rb') == 0 बदसूरत लग रहा है।यह कैसे जांचें कि फ़ाइल खाली है?

+1

http : //stackoverflow.com/questions/2615884/optimized-way-of-getting-the-size-of-a-response-in-ruby –

+2

आईएमएचओ कि वाक्यविन्यास स्पष्ट रूप से कोड के इरादे को बताता है, जो एक अच्छी बात है। – fmendez

उत्तर

46

आप zero? विधि इस्तेमाल कर सकते हैं:

File.zero?("test.rb") 
+0

मेरे संस्करण से कम वर्बोज़। – leemour

2

सबसे अच्छा तरीका है, लेकिन कम से सभी की जांच नहीं करने के लिए प्रत्येक पंक्ति के ऊपर पुनरावृति और प्रत्येक यात्रा के लिए सामान करना हो सकता है। 0 लाइनें = 0 पुनरावृत्तियों = कोई अतिरिक्त कोड की आवश्यकता नहीं है।

2

File.size?('test.rb')nil का मूल्यांकन करता है यदि फ़ाइल खाली है or यह अस्तित्व में नहीं है। File.zero?('test.rb') झूठी वापसी करेगा फ़ाइल खाली है, लेकिन अगर फाइल नहीं मिली तो यह झूठी वापसी भी होगी। आपकी विशेष जरूरतों के आधार पर आपको सही विधि का उपयोग करने के लिए सावधान रहना चाहिए।

विषय निर्माता के प्रश्न में एक उदाहरण के रूप में उन्होंने विशेष रूप से पूछा, "रुबी में जांचने का सबसे अच्छा तरीका क्या है कि फ़ाइल खाली है?" स्वीकार्य उत्तर यह सही ढंग से करता है और फ़ाइल मौजूद नहीं होने पर No such file or directory त्रुटि संदेश उठाएगा।

कुछ स्थितियों में हम किसी फ़ाइल की कमी को खाली फ़ाइल में "समकक्ष" मान सकते हैं।

0

रुबी 2.4.0 के रूप में, File.empty? है।

(ध्यान दें कि यह हमेशा false रिटर्न अगर आप इसे एक निर्देशिका गुजरती हैं, चाहे वह निर्देशिका खाली है या नहीं:।। File.empty?('/') # => false बजाय उस के लिए Dir.empty? उपयोग करें, या Pathname#empty? जो दोनों फ़ाइल और निर्देशिकाओं के काम करता है)

संबंधित मुद्दे