lua 및 io 라이브러리에 관한 한 가지 질문이 있습니다.큰 파일에서 찾기 기능에 오류가 발생했습니다.
난 파일 크기를 얻을이 간단한 기능을했습니다 :
function checkisoLIMG(file)
local iso = assert(io.open(file, "rb"));
if (iso) then
local size = iso:seek("end");
iso:close();
return size;
else
return "error";
end
end
내가 함수 반환 전무는 -1 (3기가바이트 또는 약 4GB) 큰 파일의 크기를 얻기 위해 노력하지만, 작은, 파일이 잘 작동합니다. 누군가 이것을 고치는 법을 알고 있습니까? 또는 스크립트를 사용하여 파일 크기를 가져올 수 있습니다.
프로그램이 문제없이 파일을 열어서 2147483647 (1 바이트 미만 2GB)보다 낮은 위치를 찾을 수 있기 때문에 문제는 io.seek입니다.하지만 2GB 이상인 위치를 보려고 할 때 실패합니다.
사전
답장을 보내 주셔서 감사합니다. 그러나 스크립트 언어로 lua를 사용하는 프로그램을 사용하고 있으며 제 3 자 라이브러리를 설치할 수 없습니다. –
@ DanielCarrascoMarín : 그러면 아마도 플랫폼 간 라이브러리 대신 시스템 특정 솔루션을 사용할 수 있습니다. os.execute 명령은 다른 프로그램을 실행하는 데 사용할 수 있으며 시스템 구성 방법에 따라 원하는 기능을 수행 할 수있는 기능이있을 수 있습니다. – hugomg
내가 사용하는 프로그램에서 lfs를 사용하는 방법을 찾았지만, 파일의 마지막 16KB를 읽고 싶습니다. 그리고 io.open없이 찾아서 탐색하는 방법을 모르겠습니다. 나는 lfs로 그것을하는 방법을 보지 못했다. –