2010-04-01から1ヶ月間の記事一覧

ディレクトリのサイズをまとめて計算するスクリプト

エクスプローラがディレクトリサイズの一覧を表示してくれないので、Rubyで書きました。 まずは、ひとつのディレクトリのサイズを求めるメソッドです。 def dir_size(dir_path) dir_size = 0 Dir.entries(dir_path).reject{|x|/^\.+$/=~x}.each do |file_nam…

配列のつくりかた

配列は、最も基本的なデータ構造です。Rubyの配列は、「可変長」「イテレータが簡単」などの理由で、利便性が高くなっています。 配列のプログラム内での使い方ですが、まずは配列を作成しなければなりません。一般的には、 [1, 2, 3] と記述します。角括弧…

【ワンライナー】ファイルの一括リネームを一行で書く

今回は、いわゆるワンライナーに挑戦してみます。お題は、前々回の、ファイルをリネームするプログラムです。 Dir.entries('./').reject{|x|/\.$/=~x}.sort_by{|fname|File.stat('./'+fname).mtime}.each_with_index{|fname,index|File.rename('./'+fname,'.…

ちょっとした重複コード対策

一般的なプログラミングの世界では、DRY(Don't repeat yourself)の原則やらOAOO(Once and Only Once)の原則やらで言われているように、コードの重複は避けるべきという考え方が主流です。 例えば、変数「a」と変数「b」の内容を出力したいとしましょう。その…

ファイルを更新時間順にソートしてリネームするプログラム

li{ margin-bottom: 10px; } #!ruby -Kspath = ARGV[0] #末尾に"\"を付加することfnames = Dir.entries(path) fnames.delete_if { |x| /.*\.$/ =~ x }fnames.sort! do |a, b| File.stat(path + a).mtime.strftime("%Y%m%d%H%M%S") File.stat(path + b).mtime…

キーボードにWindowsキーがないとき

[Ctrl] + [Esc] で代用します。 ※ただし[Windows] + X は不可