동일하게 위해 이것은 단지 몇입니다 블록의 시작 부분에 디렉토리의 크기를 저장하고 기다려야 저를 요구하는 것입니다 있으리라 믿고있어 이니셜 라이저에 추가 할 수있는 함수 또는 무엇이든간에.
테스트하지만, 기능적으로 소리 것 같습니다하지 않았
def get_file_size_in_mb(path)
File.size(path).to_f/10240000.0
end
def find_all_files_inside(folder_path)
Dir.glob("#{folder_path}/**/*")
end
def calculate_size_of_folder_contents(folder_path)
mb = 0.0
find_all_files_inside(folder_path).each do |fn|
mb += get_file_size_in_mb(fn)
end#^could have used `inject` here
mb
end
def wait_until_folder_size_changes(folder_path, seconds=2)
while true
size0 = calculate_size_of_folder_contents(folder_path)
sleep seconds
size1 = calculate_size_of_folder_contents(folder_path)
break if (size1-size0) > 0
end
end
당신 수도 Watir과 그 자체로 쉽게 원숭이 코드이 경쟁 조건에 자신을 열 것
경우 다운로드의 크기가 증가하기 전에 'Watir :: Wait.until' 블록이 호출됩니다. 크기를 확인하려면 먼저 디렉토리 크기를 저장 한 다음 조치를 취한 다음 크기가 1 씩 증가 할 때까지 기다려야합니다. – titusfortner
나는이 솔루션을 너무 싫어해서 내가 그것을 되찾기 전에 나는 그 남자의 대답을 downvoted했다. 그러나 분명히 이것에 대한 보석이있다 : http://stackoverflow.com/questions/9354595/recursively-getting-the-size-of- a-directory –
파일을 다운로드하는 경우 왜 그 크기가 _increased_인지 확인해야합니까? 나는 당신이 파일을 가지지 않는 것에서 파일의 적어도 일부분을 가지게 될 것이라고 기대할 것입니다 - 즉 파일 크기가 0보다 큰지 단순히 확인할 수는 없습니까? –