看板 Ruby 關於我們 聯絡資訊
環境: ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32] 狀況: 最近在看Ruby Programming這本書的Ch16,其中有範例是做出類似unix的 du function(計算folder大小),可是我發現如果裡面的檔案太大就會出現負數。 (估計是2G),請問這個問題要怎麼解決呢?謝謝各位大大。 附錄: 此為程式碼: require "find" def du(path) result = 0 Find.find(path){|f| if File.file?(f) result += File.size(f) end } printf("%d %s\n", result, path) return result end du(ARGV[0] || ".") -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.72.1 ※ 編輯: cire 來自: 140.113.72.1 (05/16 19:49)
godfat:如果這是 File.size 本身的問題…恐怕很難解決 :o 05/17 00:49
adrianshum:File.size 會不會是 return fixnum? 05/17 13:09
ebs:File.size有2GB的限制,加個 require 'win32/file' 試試 05/19 13:10
cire:感謝ebs 加上win32.file就可以嚕:D 05/26 20:41