
lastsm="ms0:/"
txtms={}

function exploradorms(ruta)

liberar(23)

trabajo={}

dirms=files.list(ruta)
actual=1
fila=1
if #dirms==0 then
	maximoms=0
else
	maximoms=#dirms
	for i=1,maximoms do
		if dirms[i].dirmsectory then dirms[i].typ="Folder" else
			if files.ext(dirms[i].name)!=nil then
				dirms[i].typ="File "..files.ext(dirms[i].name)
			else
				dirms[i].typ="File"
			end
		end
		if #dirms[i].name>80 then dirms[i].name=dirms[i].name:sub(1,80).." ..." end
	end
end

direccionms=ruta:gsub(":/"," > ")
direccionms=string.upper(direccionms:gsub("/"," > "))



while true do
controls.read()
msfile:blit(0,0)

boton=0
screen.print(micro,210,37,"MS  File\n\n   Transfer",1,negro,0)
screen.print(pspfont,50,115,direccionms,1,negro,0)
screen.print(micro,240,250,"Elementos:  "..#trabajo,0.7,negro,0,"center")

if controls.press("down") then actual=actual+1 elseif controls.press("up") then actual=actual-1 end
if controls.press("left") then
	if maximoms>0 then
		exploradorms(files.nofile(files.nofile(dirms[1].name)))
	else
		exploradorms(lastsm)
	end
end


if actual<1 then actual=maximoms elseif actual>maximoms then actual=1 end


if maximoms>0 then
	if maximoms-actual>6 then
		for i=actual,actual+6 do
			if actual==i then 
				screen.print(pspfont,90,143+16*i-actual*16,files.nopath(dirms[i].name),0.9,negro,0) 
				screen.print(pspfont,380,143+16*i-actual*16,dirms[i].typ,0.9,negro,0)
			else 
				screen.print(pspfont,90,143+16*i-actual*16,files.nopath(dirms[i].name),0.9,blanco,0) 
				screen.print(pspfont,380,143+16*i-actual*16,dirms[i].typ,0.9,blanco,0)
			end
		end
	else
		if maximoms>6 then
			for i=maximoms-6,maximoms do
				if actual==i then 
					screen.print(pspfont,90,143+16*i-(maximoms-6)*16,files.nopath(dirms[i].name),0.9,negro,0) 
					screen.print(pspfont,380,143+16*i-(maximoms-6)*16,dirms[i].typ,0.9,negro,0)
				else 
					screen.print(pspfont,90,143+16*i-(maximoms-6)*16,files.nopath(dirms[i].name),0.9,blanco,0) 
					screen.print(pspfont,380,143+16*i-(maximoms-6)*16,dirms[i].typ,0.9,blanco,0)
				end
			end
			
		else
			for i=1,maximoms do
				if actual==i then 
					screen.print(pspfont,90,143+16*i,files.nopath(dirms[i].name),0.9,negro,0) 
					screen.print(pspfont,380,143+16*i,dirms[i].typ,0.9,negro,0)
				else 
					screen.print(pspfont,90,143+16*i,files.nopath(dirms[i].name),0.9,blanco,0) 
					screen.print(pspfont,380,143+16*i,dirms[i].typ,0.9,blanco,0)
				end
			
			end
		end
	end
else
	screen.print(pspfont,120,140,"dirmsectorio Vacio\n\nPulsa X para volver.",0.9,negro,0)
	if controls.press("cross") then exploradorms(lastsm) end
end

if controls.press("cross") then
	if dirms[actual].directory then
		exploradorms(dirms[actual].name)
	end
end

if controls.press("r") then
	trabajo[#trabajo+1]={n=dirms[actual].name,s=dirms[actual].size}
end

if controls.press("l") then 
	trabajo[#trabajo]=nil
end

if controls.press("triangle") and #trabajo>0 then transferencia() end

if controls.start() then sistema("MS File Transfer") end
if controls.press("cross") then
	if col(p,close) then
		sistema("MS File Transfer",true)
	elseif col(p,saveclose) then
		sistema("MS File Transfer")
	end
end
screen.flip()
end
end

function transferencia()
screen.clear()
screen.flip()
while true do

tamaño=0
for i=1,#trabajo do
	tamaño=tamaño+trabajo[i].s 
end

msfile:blit(0,0)
screen.print(pspfont,240,120,"Autorice la transferencia de archivo/s",1,rojo,0,"center")
screen.print(240,200,"Tamaño total: "..tamaño/1048576 .."  MB",0.7,negro,0,"center")
screen.print(240,230,"Pulsa X para seguir con la transferencia o Círculo para cancelar",0.7,negro,0,"center")
screen.flip()
salidams=false

while true do
	controls.read()
	if controls.press("circle") then salidams=true break end
	if controls.press("cross") then break end
end


if not salidams then
	msfile:blit(0,0)
	screen.print(micro,210,37,"MS  File\n\n   Transfer",1,negro,0)
	screen.print(pspfont,240,150,"Preparando los archivos a transferir\n\nPor favor, espera",0.8,rojo,0,"center")
	screen.flip()
	
	for i=1,#trabajo do
		archivoms=io.open(trabajo[i].n,"r+")
		txtms[i]=archivoms:read("*a")
		archivoms:close()
	end

	if os.message("Cuando cambies la MS pulsa ''Aceptar''",0)==1 then
		controls.homepopup(0)
		power.lock()
		msfile:blit(0,0)
		screen.print(micro,210,37,"MS  File\n\n   Transfer",1,negro,0)
		screen.print(pspfont,240,150,"Iniciando transferencia\n\nPor favor, espera",1,rojo,0,"center")
		screen.print(pspfont,240,200,"Se ha desactivado el boton HOME y el\ninterruptor de apagado para evitar\nperdidas de informacion.\nAl acabar la transferencia se activaran.",0.9,negro,0,"center")
		screen.flip()
		
		for i=1,#trabajo do
			archivoms=io.open("ms0:/copia.txtms","w+")
			archivoms:write(txtms[i])
			archivoms:close()
			files.rename("ms0:/copia.txtms","ms0:/"..files.nopath(trabajo[i].n))
		end
		controls.homepopup(1)
		power.unlock()
	end
end

exploradorms("ms0:/")

end
end
