Gestionnaire de fichiers très léger
écrit en PureBasic (la mise à jour vers la version démo 5.00 est sortie)
Il est modeste et minuscule, sa taille ne dépasse pas 100k, environ 8X moins que Thunar qui a pourtant une réputation de convivialité et de légèreté.
Aucune installation n'est indispensable, l'exécutable est composé d'un seul fichier qui peut être placé dans n'importe quel répertoire.Pour vérification, je l'ai testé sur différentes distributions Linux et cela n'a posé aucun problèmes.
Sa vitesse d'exécution est fabuleuse, le parcours de répertoires énorme est plutôt véloce.
Un des répertoires les plus fourni sous Linux est /usr/bin qui contient la plupart des commandes utilisateur, souvent plus de 2000 fichiers.
Certains gestionnaires semblent plantés lors de l'exploration de ce répertoire, ce n'est pas le cas avec ce gestionnaire dont la lecture est instantanée.
Présentation :
La fenêtre de gauche est le navigateur, celle de droite permet de fournir une liste de travail sur une série de fichiers, on peut aisément ajouter et supprimer des fichiers dans cette liste (ou la vider totalement) avant d'opérer le travail de suppression ou de collage.
A partir du navigateur on peut aussi créer, supprimer ou renommer des répertoires.
Quelques options utilisent des programmes externes :
Monter disk - gnome-disks
Fichiers animation - vlc
Visu d'images - ristretto
Visu de PDF - evince
Terminal - xfce4-terminal
Editeur - leafpad
Une option supplémentaire permet de copier le chemin complet avec le nom du fichier dans le presse-papier afin d'exploitation dans un autre programme ou terminal.
Il ne fait qu'un travail basique sur les fichiers, se déplacer dans l'arborescence n'importe où sur le disque c'est souvent ce qu'on demande à ce genre de logiciel, son principal atout est sa concision et sa rapidité car PureBasic compile ses programmes et les transforme en langage machine.
;Programme de gestion de fichiers léger
Enumeration
#Window_0
#liste_fich
#explor_combo
#text1
#bt_o
#bt_n
#text_cache
#liste_trav
#bt_ajout
#bt_ote
#text_nblignes
#bt_clear
#text_titre1
#bt_coller
#bt_supprimer
#bt_renomme
#bt_exec
#bt_visutxt
#bt_offvisu
#bt_xterm
#Editor
#saisie_nom
#bt_valide
#bt_abandon
#bt_supprdir
#text_supprdir
#bt_valsupprdir
#bt_abandonsupprdir
#bt_copydir
#bt_creerep
#bt_valcreerep
#bt_abandocreerep
#bt_quitter
#bt_edit
#bt_pp
#bt_disks
#bt_ristretto
#bt_vlc
#bt_evince
#bt_monterep
#bt_rac
#bt_home
EndEnumeration
Global Window_0
Global ExplorerTree_0, ExplorerList_1
Procedure InitWindow_0()
Window_0 = OpenWindow(#Window_0, 0, 0, 1250, 670, "Gestionnaire de fichiers", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Resultat = ExplorerComboGadget(#explor_combo, 2, 2, 250, 20, GetHomeDirectory(),#PB_Explorer_Editable)
ExplorerList_1 = ExplorerListGadget(#liste_fich, 2, 30, 490, 560, GetHomeDirectory(),#PB_Explorer_AutoSort | #PB_Explorer_MultiSelect)
RemoveGadgetColumn(#liste_fich, 2)
AddGadgetColumn(#liste_fich,3,#PB_Explorer_Attributes,30)
RemoveGadgetColumn(#liste_fich, 2)
SetGadgetItemAttribute(#liste_fich,0,#PB_Explorer_ColumnWidth,300)
TextGadget(#text1,2,600,490,20,"-----",#PB_Text_Border)
TextGadget(#text_cache,370,2,90,20,"fichiers cachés")
ButtonGadget(#bt_o,476,2,14,20,"o")
ButtonGadget(#bt_n,462,2,14,20,"n")
ButtonGadget(#bt_monterep,340,2,20,20,"..")
ButtonGadget(#bt_rac,320,2,20,20,"/")
ButtonGadget(#bt_home,300,2,20,20,"~")
ListViewGadget(#liste_trav,600,60,600,530)
EditorGadget(#Editor,600,60,630,530)
HideGadget(#Editor,1)
ButtonGadget(#bt_ajout,530,60,70,25,"Ajout")
ButtonGadget(#bt_ote,530,85,70,25,"Enlève")
TextGadget(#text_nblignes,1160,40,40,25,Str(CountGadgetItems(#liste_trav)))
ButtonGadget(#bt_clear,530,110,70,25,"Vide liste")
TextGadget(#text_titre1,600,40,300,25,"- Liste de sélection des fichiers -")
ButtonGadget(#bt_coller,530,145,70,25,"Colle fich.")
ButtonGadget(#bt_copydir,530,170,70,25,"Colle rép.")
ButtonGadget(#bt_supprimer,530,200,70,25,"Suppr. fich.")
ButtonGadget(#bt_disks,492,260,108,22,"Monte disk")
ButtonGadget(#bt_evince,492,296,108,22,"Visu PDF")
ButtonGadget(#bt_vlc,492,318,108,22,"Visu anim VLC")
ButtonGadget(#bt_ristretto,492,340,108,22,"Visu images")
ButtonGadget(#bt_supprdir,492,456,108,22,"Suppr. Répert.")
ButtonGadget(#bt_renomme,492,478,108,22,"Renommer")
ButtonGadget(#bt_exec,492,500,108,22,"Exécuter")
ButtonGadget(#bt_visutxt,530,522,70,22,"Visu texte")
ButtonGadget(#bt_offvisu,492,522,38,22,"Off")
ButtonGadget(#bt_xterm,492,544,108,22,"Terminal")
ButtonGadget(#bt_quitter,497,585,98,35,"Quitter")
ButtonGadget(#bt_pp,492,370,108,22,"Copie dans PP")
ButtonGadget(#bt_edit,492,400,108,22,"Editeur")
ButtonGadget(#bt_creerep,492,434,108,22,"Créer Répert.")
ButtonGadget(#bt_valcreerep,1010,600,90,20,"Valide création")
ButtonGadget(#bt_abandocreerep,1110,600,90,20,"Abandon")
HideGadget(#bt_valcreerep,1)
HideGadget(#bt_abandocreerep,1)
StringGadget(#saisie_nom,600,600,400,20,"")
SetGadgetColor(#saisie_nom,#PB_Gadget_BackColor,RGB(255,255,00))
ButtonGadget(#bt_valide,1010,600,90,20,"Valider")
ButtonGadget(#bt_abandon,1110,600,90,20,"Abandon")
HideGadget(#saisie_nom,1)
HideGadget(#bt_valide,1)
HideGadget(#bt_abandon,1)
TextGadget(#text_supprdir,600,600,400,20,"")
ButtonGadget(#bt_valsupprdir,1010,600,90,20,"Supprimer")
ButtonGadget(#bt_abandonsupprdir,1110,600,90,20,"Abandon")
HideGadget(#text_supprdir,1)
HideGadget(#bt_valsupprdir,1)
HideGadget(#bt_abandonsupprdir,1)
EndProcedure
InitWindow_0()
; ***********************
; Gestion des événements
; ***********************
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
If EventGadget() = #explor_combo
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
SetGadgetText(#text1,"----")
EndIf
If EventGadget() = #liste_fich
SetGadgetText(#explor_combo, GetGadgetText(#liste_fich))
If GetGadgetState(#liste_fich) <> -1
SetGadgetText(#text1, GetGadgetText(#explor_combo) + GetGadgetItemText(#liste_fich,GetGadgetState(#liste_fich)))
EndIf
If GetGadgetState(#liste_fich) = -1
SetGadgetText(#text1, GetGadgetText(#explor_combo))
EndIf
EndIf
If EventGadget() = #bt_o
SetGadgetAttribute(#liste_fich,#PB_Explorer_HiddenFiles,1)
EndIf
If EventGadget() = #bt_n
SetGadgetAttribute(#liste_fich,#PB_Explorer_HiddenFiles,0)
EndIf
If EventGadget() = #bt_monterep
nbr = Len(GetGadgetText(#explor_combo))
For i = 1 To nbr - 1
If Mid(GetGadgetText(#explor_combo),i,1) = "/"
position = i
EndIf
Next
nom$ = Mid(GetGadgetText(#explor_combo),1,position)
SetGadgetText(#explor_combo,nom$)
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
EndIf
If EventGadget() = #bt_rac
SetGadgetText(#explor_combo,"/")
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
EndIf
If EventGadget() = #bt_home
SetGadgetText(#explor_combo,GetHomeDirectory())
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
EndIf
If EventGadget() = #bt_ajout
nbr = CountGadgetItems(#liste_fich)
For i = 0 To nbr -1
If GetGadgetItemState(#liste_fich,i) & #PB_Explorer_Selected
AddGadgetItem(#liste_trav,-1,GetGadgetText(#explor_combo)+GetGadgetItemText(#liste_fich,i))
SetGadgetText(#text_nblignes,Str(CountGadgetItems(#liste_trav)))
EndIf
Next
EndIf
If EventGadget() = #bt_ote
num = GetGadgetState(#liste_trav)
If num <> -1
RemoveGadgetItem(#liste_trav, num)
EndIf
SetGadgetText(#text_nblignes,Str(CountGadgetItems(#liste_trav)))
EndIf
If EventGadget() = #bt_clear
ClearGadgetItems(#liste_trav)
SetGadgetText(#text_nblignes,Str(CountGadgetItems(#liste_trav)))
EndIf
If EventGadget() = #bt_exec
RunProgram(GetGadgetText(#text1))
EndIf
If EventGadget() = #bt_visutxt
ClearGadgetItems(#Editor)
HideGadget(#Editor,0)
If OpenFile(0, GetGadgetText(#text1))
While Eof(0) =0
text$ = ReadString(0)
AddGadgetItem(#Editor,-1,text$)
Wend
CloseFile(0)
EndIf
EndIf
If EventGadget() = #bt_offvisu
ClearGadgetItems(#Editor)
HideGadget(#Editor,1)
EndIf
If EventGadget() = #bt_pp
SetClipboardText(GetGadgetText(#text1))
EndIf
If EventGadget() = #bt_valsupprdir
DeleteDirectory(GetGadgetText(#text1),"",#PB_FileSystem_Recursive | #PB_FileSystem_Force)
HideGadget(#text_supprdir,1)
HideGadget(#bt_valsupprdir,1)
HideGadget(#bt_abandonsupprdir,1)
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
EndIf
If EventGadget() = #bt_abandonsupprdir
HideGadget(#text_supprdir,1)
HideGadget(#bt_valsupprdir,1)
HideGadget(#bt_abandonsupprdir,1)
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
EndIf
If EventGadget() = #bt_creerep
HideGadget(#saisie_nom,0)
HideGadget(#bt_valcreerep,0)
HideGadget(#bt_abandocreerep,0)
SetGadgetText(#saisie_nom,(GetGadgetText(#explor_combo)+"NOUVEAU"))
EndIf
If EventGadget() = #bt_valcreerep
CreateDirectory(GetGadgetText(#saisie_nom))
HideGadget(#saisie_nom,1)
HideGadget(#bt_valcreerep,1)
HideGadget(#bt_abandocreerep,1)
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
EndIf
If EventGadget() = #bt_abandocreerep
HideGadget(#saisie_nom,1)
HideGadget(#bt_valcreerep,1)
HideGadget(#bt_abandocreerep,1)
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
EndIf
If EventGadget() = #bt_supprdir
HideGadget(#text_supprdir,0)
HideGadget(#bt_valsupprdir,0)
HideGadget(#bt_abandonsupprdir,0)
SetGadgetText(#text_supprdir,(GetGadgetText(#text1)))
EndIf
If EventGadget() = #bt_renomme
HideGadget(#saisie_nom,0)
HideGadget(#bt_valide,0)
HideGadget(#bt_abandon,0)
SetGadgetText(#saisie_nom,GetGadgetText(#text1))
EndIf
If EventGadget() = #bt_valide
RenameFile(GetGadgetText(#text1),GetGadgetText(#saisie_nom))
HideGadget(#saisie_nom,1)
HideGadget(#bt_valide,1)
HideGadget(#bt_abandon,1)
SetGadgetText(#saisie_nom,"")
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
EndIf
If EventGadget() = #bt_abandon
HideGadget(#saisie_nom,1)
HideGadget(#bt_valide,1)
HideGadget(#bt_abandon,1)
SetGadgetText(#saisie_nom,"")
EndIf
If EventGadget() = #bt_xterm
RunProgram("xfce4-terminal","",GetGadgetText(#explor_combo))
EndIf
If EventGadget() = #bt_edit
RunProgram("leafpad",GetGadgetText(#text1),"")
EndIf
If EventGadget() = #bt_disks
RunProgram("gnome-disks")
EndIf
If EventGadget() = #bt_vlc
RunProgram("vlc",GetGadgetText(#text1),"")
EndIf
If EventGadget() = #bt_evince
RunProgram("evince",GetGadgetText(#text1),"")
EndIf
If EventGadget() = #bt_ristretto
RunProgram("ristretto",GetGadgetText(#text1),"")
EndIf
If EventGadget() = #bt_supprimer
While GetGadgetItemText(#liste_trav,0) <> ""
DeleteFile(GetGadgetItemText(#liste_trav,0))
RemoveGadgetItem(#liste_trav,0)
Wend
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
SetGadgetText(#text_nblignes,Str(CountGadgetItems(#liste_trav)))
EndIf
If EventGadget() = #bt_coller
While GetGadgetItemText(#liste_trav,0) <> ""
nom$ = GetFilePart(GetGadgetItemText(#liste_trav,0))
CopyFile(GetGadgetItemText(#liste_trav,0),GetGadgetText(#text1)+nom$)
RemoveGadgetItem(#liste_trav,0)
Wend
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
SetGadgetText(#text_nblignes,Str(CountGadgetItems(#liste_trav)))
EndIf
If EventGadget() = #bt_copydir
CopyDirectory( GetGadgetItemText(#liste_trav,0),GetGadgetText(#text1),"",#PB_FileSystem_Recursive | #PB_FileSystem_Force)
RemoveGadgetItem(#liste_trav,0)
SetGadgetText(#liste_fich,GetGadgetText(#explor_combo))
SetGadgetText(#text_nblignes,Str(CountGadgetItems(#liste_trav)))
EndIf
If EventGadget() = #bt_quitter
End
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
ForEver