System.memclean()
Blanc = Color.new (255,255,255)
Noir = Color.new (0,0,0) 
Rouge = Color.new (255,0,0) 
Bleu = Color.new (0,0,255)
Vert = Color.new (0,255,50)

function Nil_Pictures()
Fond = nil
battery1 = nil
battery2 = nil
battery3 = nil
battery4 = nil
Icone = nil
Selection = nil
collectgarbage()
end

Nil_Pictures()

Fond = Image.load("images/finder.png")
Selection = Image.load("images/selecteur.png")
battery1 = Image.load("images/Copie de battery4.png")
battery2 = Image.load("images/Copie de battery3.png")
battery3 = Image.load("images/Copie de battery2.png")
battery4 = Image.load("images/Copie de battery1.png")

Menu = ("ms0:/PSP/GAME/IvEr PSP")

NbFichiers = 10
EnCours = 1
X = 50
Y = 30

N = 1

System.currentDirectory("ms0:/")
Fichiers = System.listDirectory()

Endroit = "Explorateur"

function Icones(icone)
if icone == ".ELF" then Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/ELF.png")
elseif icone == ".PRX" then Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/PRX.png")
elseif icone == ".PBP" then Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/PBP.png")
elseif icone == ".LUA" then Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/LUA.png")
elseif icone == ".PNG" then Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/PNG.png")
elseif icone == ".JPG" or icone == "JPEG" then Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/JPG.png")
elseif icone == ".GIF" then Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/GIF.png")
elseif icone == "HTML" or icone == ".HTM" or icone == ".PHP" then Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/Internet.png")
elseif icone == ".ZIP" then Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/zip.png")
else
Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/Fichier.png")
end
end

function Ouvrir()
System.currentDirectory(Fichiers[EnCours].name) 
Fichiers = System.listDirectory()
N = 1 
EnCours = 1 
end 
 
function Precedent()
if System.currentDirectory() ~= "ms0:"  then
System.currentDirectory(System.currentDirectory() .. "/..")
 
Fichiers = nil 
Fichiers = System.listDirectory() 
 
N = 1 
EnCours = 1
end 
end

function AfficherMS() 
screen:blit(0,0,Fond) --On affiche le Fond

screen:print(23,240,System.currentDirectory(),Rouge) --On ecrit le dossier où on est

for i = N, N + NbFichiers - 1 do
if string.len(Fichiers[i].name) > 23 then --Si il y a plus de 23 caractères
screen:print(X,Y,string.sub(Fichiers[i].name,1,21).."...",Noir)
else
screen:print(X,Y,Fichiers[i].name,Noir)
end

if table.getn(Fichiers) == i then break end --Si il n'y a pas de fichiers, on stop la boucle

if x > X - 5 and x < X + Selection:width() - 5 and y > Y - 7 and y < Y + 13 then EnCours = i end

Y = Y + 20

end

Y = 30

if Fichiers[EnCours].directory then
Icone = Image.load("ms0:/PSP/GAME/IvEr PSP/images/Finder/Dossier.png")
else
Icones(ext)
end
screen:blit(320, 100, Icone)

screen:blit(X - 5, (EnCours-N)*20+23, Selection)

if string.len(Fichiers[EnCours].name) > 23 then --Si il y a plus de 23 caractères
screen:print(X,Y,string.sub(Fichiers[EnCours].name,1,21).."...",Rouge)
else
screen:print(X,(EnCours-N)*20+30,Fichiers[EnCours].name,Rouge)
end

if pad:down() then System.sleep(150) EnCours = EnCours + 1 end  --Si on appuie sur haut ou bas, la selection monte ou descend
if pad:up() then System.sleep(150) EnCours = EnCours - 1 end 

	if EnCours < 1 then EnCours = 1 elseif EnCours > table.getn(Fichiers) then EnCours = table.getn(Fichiers) end
	if EnCours > N + NbFichiers - 1 and N + NbFichiers - 1 ~= table.getn(Fichiers) then N = N + NbFichiers elseif EnCours < N then N = N - NbFichiers end


end

while true do 
    posx = 10
	posy = 15
    screen:clear(Blanc)
	screen:blit (0,0,Fond)

		-------Batterie---------------
if System.powerGetBatteryLifePercent() >= 0 then batteryL = battery1 end
if System.powerGetBatteryLifePercent() > 30 then batteryL = battery2 end
if System.powerGetBatteryLifePercent() > 50 then batteryL = battery3 end
if System.powerGetBatteryLifePercent() > 70 then batteryL = battery4 end
	
ext = string.upper(string.sub(Fichiers[EnCours].name,-4))

    AfficherMS()
	
screen:blit(456,4,batteryL)
 
     pad = Controls.read() 

    if pad:cross() then
	
Dossier = System.currentDirectory()

if	Fichiers[EnCours].directory == true then
        Ouvrir()

else
Chemin = System.startOSK(System.currentDirectory(),"Chemin d'extraction")
Pass = System.startOSK("","Mot de Passe")
ZIP.extract(System.currentDirectory().."/"..Fichiers[EnCours].name, Chemin, Pass)
end
    end
 
 
if pad:circle() and not oldpad:circle() then Precedent() end 

if pad:square() then
System.currentDirectory (Menu)
Nil_Pictures()
dofile(Menu.."/Scripts/menu.lua")
end

screen:flip()
screen.waitVblankStart() 
oldpad = pad
end
