2013-04-12 15 views
30

私は例えばテキストファイルを持っています。 Rubyでファイルが空であることをチェックする最も良い方法は何ですか? File.size('test.rb') == 0醜いです。ファイルが空であることを確認するにはどうすればよいですか?

+1

HTTP ://stackoverflow.com/questions/2615884/optimizedway-of-getting-the-size-of-a-response-in-ruby –

+2

IMHOはコードの意図を明示的に述べていますが、それは良いことです。 – fmendez

答えて

46

あなたはzero?方法使用できますが、それぞれの行を反復し、反復ごとにものを行う、まったくチェックしないことであり得る

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

私のバージョンより冗長ではありません。 – leemour

2

最善の方法を。 0行= 0反復=余分なコードは必要ありません。

2

File.size?('test.rb')nilファイルが空の場合はorとなります。 File.zero?('test.rb')は、ファイルが空であればfalseを返しますが、ファイルが見つからない場合はfalseも返します。特定のニーズに応じて、正しい方法を使用するように注意する必要があります。

トピック作成者の質問の例として、「Rubyでファイルが空であることを確認するには、どうすればよいですか?受け入れられた答えは正しくこれを行い、ファイルが存在しない場合はNo such file or directoryエラーメッセージが表示されます。

ある状況では、ファイルの欠落が空のファイルと「同等」であると考えられることがあります。

0

Ruby 2.4.0以降、File.empty?があります。

(。それは常にあなたがそのディレクトリが空であるかどうか、ディレクトリを渡す場合falseを返すことに注意してください:。File.empty?('/') # => falseので、代わりにそのためのDir.empty?を使用するか、またはファイルとディレクトリの両方のために働くPathname#empty?

関連する問題