Gestion de fichiers léger


Gestionnaire de fichiers léger


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
   





24/12/2012
0 Poster un commentaire

Ces blogs de Informatique & Internet pourraient vous intéresser