Ruby Project에서 작업 중입니다. 모든 파일 대신 Zip 아카이브에서 특정 파일을 추출해야합니다. 코드 추출물 위Ruby의 Zip 아카이브에서 특정 파일의 압축을 풉니 다.
require 'rubygems'
require 'zip'
@folder = "C:/Users/Shek/Desktop/aadi_elements.zip"
@zip = ''
@vals = []
@files_names = []
@articles = Article.all
Zip::File.open(@folder) { |zip_file|
@zip = zip_file
zip_file.each { |f|
@vals.push f
@files_names.push f.name
}
}
모든 파일을하지만 내 reqiurement는 클릭 이벤트가 수행되는 특정 파일을 추출하는 것입니다 - : 나는 "우편"보석을 사용하여 다음과 같은 코드를 시도했다. 미리 감사드립니다.
간단한 if (f.name == <클릭 한 파일 이름>)를 zip_file.each에 넣을 수는 없습니까? – xyious
@xyious 예이 조건은 훌륭하게 작동하지만 파일 이름을 클릭하면 파일을 압축해야하는 다른 메서드를 호출해야합니다. 그런 다음 각 루프는 필요하지 않은 파일 수만큼 실행됩니다. 따라서 코드는 최적화되지 않을 것입니다. – Mandeep
문제가 될 때까지 최적화에 대해 걱정하지 않겠습니다. 또한 약간의 최적화로 올바른 파일을 찾은 후에 루프를 멈출 수 있습니다. 압축 해제 기능과 웹 사이트의 디스플레이 기능이 동일하게 정렬되어 있으면 파일 번호로 건너 뛸 수 있습니다. 그것이 사실이라면 테스트 할만한 가치가있을 것입니다. – xyious