Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

YOMMEXPLORER.NET EXPLORER / EXPLORATEUR DE DOSSIERS RÉPERTOIRES FICHIERS (VRAIS ICONES, MENU CONTEXTUEL, RAFFRAICHISSEMENT AUTO, LIEN ENTRE ARBORESCENCE DOSSIERS ET LISTE FICHIER)


Information sur la source

Catégorie :Control Source .NET ( DotNet ) Classé sous : explorer, explorateur, dossier, fichier, repertoire Niveau : Expert Date de création : 02/06/2007 Vu / téléchargé: 10 863 / 1 221

Note :
9,6 / 10 - par 10 personnes
9,60 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (29)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Bonjour @ tous & toutes,

Voici la version .Net du YommExplorer OCX.
Reprise des anciennes fonctionnalités et ajout de nouvelles :

Pour le DirExplorer (arborscence répertoires)
- véritables icônes ( + racourcis , + partage)
- choix de la racine (bureau, poste de travail...)
- possibilité d'ajout d'un "racourcis" sous la racine
- checkbox 3 états
- affichage de fichiers
- menu contextuel windows
- raffraichissement automatique lorsqu'un dossier/fichier est créé par une autre appli ou via l'explorateur Windows
- récupération des nodes via énumération

Pour le FileExplorer (affichage des fichiers)
- véritables icônes ( + racourcis , + partage)
- possibilité de lier automatique le FileExplorer à un DirExplorer
- plusieur modes d'affichages : Liste, Détails, Icones et Mosaïque (cf impression écran pour ce dernier mode)
- menu contextuel + interraction automatique lors d'action du type copier/coller , nouveau document etc...
- possibilité de filtrer par extension
- possibilité d'afficher/masquer les dossiers
- possibilité d'afficher/masquer les éléments cachés
- utilisation des racourcis clavier (CTR+C, CTR+V , F2 ...)
- checkbox 2 états
- en mode détail : possibilité de modifier les colonnes affichés par click droit sur l'entête
- gestion du tri ("réorganiser par" ou par click sur l'entête de colonne en mode détail)
- récupération des items via énumération

et j'en oublie peut être...

bref tout plein de chose pour faire un vrai navigation dans une appli...


 

Source

  • '-------------------------------------------------------
  • 'Exemples DirExplorer
  • '-------------------------------------------------------
  • 'exemple pour obtenir la node sélectionnée:
  • MsgBox(DirExplorer1.SelectedItem.Text)
  • 'exemple pour obtenir les nodes cochées:
  • Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
  • MsgForNodeChecked(DirExplorer1.Root)
  • End Sub
  • Private Sub MsgForNodeChecked(ByVal Node As YommExplorer.DirExplorerNode)
  • Dim NodeFille As YommExplorer.DirExplorerNode
  • For Each NodeFille In Node.Nodes
  • If NodeFille.IsExpanded = True Then
  • MsgForNodeChecked(NodeFille)
  • ElseIf NodeFille.CheckState = CheckState.Checked Then
  • MsgBox(NodeFille.Text)
  • End If
  • Next
  • If Node.CheckState = CheckState.Checked Then MsgBox(Node.Text)
  • End Sub
  • '-------------------------------------------------------
  • 'Exemples FileExplorer
  • '-------------------------------------------------------
  • 'exemple pour récupérer les fichiers
  • Dim fileitem As YommExplorer.FileExplorerItem
  • For Each fileitem In FileExplorer1.Items
  • Debug.Print(fileitem.Text)
  • Next
  • 'exemple pour récupérer les items cochés
  • Dim fileitem As YommExplorer.FileExplorerItem
  • For Each fileitem In FileExplorer1.Items
  • If fileitem.Checked = True Then Debug.Print(fileitem.Text)
  • Next
'-------------------------------------------------------
'Exemples DirExplorer
'-------------------------------------------------------

'exemple pour obtenir la node sélectionnée:
    MsgBox(DirExplorer1.SelectedItem.Text)

'exemple pour obtenir les nodes cochées:
    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        MsgForNodeChecked(DirExplorer1.Root)
    End Sub

    Private Sub MsgForNodeChecked(ByVal Node As YommExplorer.DirExplorerNode)

        Dim NodeFille As YommExplorer.DirExplorerNode

        For Each NodeFille In Node.Nodes
            If NodeFille.IsExpanded = True Then
                MsgForNodeChecked(NodeFille)
            ElseIf NodeFille.CheckState = CheckState.Checked Then
                MsgBox(NodeFille.Text)
            End If
        Next

        If Node.CheckState = CheckState.Checked Then MsgBox(Node.Text)

    End Sub

'-------------------------------------------------------
'Exemples FileExplorer
'-------------------------------------------------------

'exemple pour récupérer les fichiers
    Dim fileitem As YommExplorer.FileExplorerItem

    For Each fileitem In FileExplorer1.Items
       Debug.Print(fileitem.Text)
    Next

'exemple pour récupérer les items cochés
    Dim fileitem As YommExplorer.FileExplorerItem

    For Each fileitem In FileExplorer1.Items
        If fileitem.Checked = True Then Debug.Print(fileitem.Text)
    Next

Conclusion

les notions abordées ici :

- héritage d'un controle pour en faire un contrôle perso
- héritage de type pour ajouter et/ou modifier des types (exemple : TriStateTreeNode hérite de Node mais permet des nodes avec checkbox 3 états)
- surchage de fonction (exemple : fonction New de la class ClsDirectory)
- subclassing
- traitement des icones, informations des fichiers etc...
- ajout d'icône dans le header d'un listview
- gestion du menu contextuel Windows et du menu nouveau
- gestion des interfaces : IUnknown, IShellDetails, IEnumIDList, IShellFolder, IcontextMenu, IcontextMenu2, IcontextMenu3, IShellExtInit, IDropTarget
- implémentation d'une propriété de type enumeration (exemple : FileExplorerItemEnumerable)
- gestion du FileSystemWatcher et des threads différents

et bien d'autres encore...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de yomm le 02/06/2007 16:16:09

Salut @ tous,

j'ai ajouté 2 jpg dans le zip pour vous donner une idée plus précise de DirExplorer et du FileExplore:

DirExplorer.jpg
FileExplorer.jpg

J'espère que ce source vous sera util !

@+ et bonne prog @ vous

signaler à un administrateur
Commentaire de Willi le 02/06/2007 18:25:05 administrateur CS

Ah enfin une "véritable" source digne de ce nom sa faisait longtemps. Merci :)
Qui plus est bien codé est intéressante sur de nombreux points...

Bonne continuation ++

signaler à un administrateur
Commentaire de badrbadr le 02/06/2007 19:22:17

Bravo, même pas besoin de regarder le code source pour réaliser toute la beauté de ce programme.
Merci,...et direct dans les favoris.

signaler à un administrateur
Commentaire de yomm le 03/06/2007 02:27:00

merci @ vous deux ça fait plaisir, il semblerait que je n'aie pas fait cela pour rien...
;-)

signaler à un administrateur
Commentaire de hideme le 11/06/2007 15:52:34

Excellent. J'ai fait en explorer look like en moins d'une journée et àprés avoir renomé ton projet avec ce que ça implique pour un débutant vb.net.

Deux choses quand même:
1- Peu de commentaires dans ton source; ça n'aide pas pour progresser. Point positif: les régions.
2- As-tu prévu les infobulles? Car mon projet tourne essentiellement autours. Avec l'association ToolTip-FileView classique, ça ne fonctionne pas; il semble que tu hérite FileEplorer d'un UserControl primaire en y greffant ListView et autres mais comment utiliser ListView.GetNodeAt() par exemple.
Encore un truc: J'ai souvenir du projet de clonage Explorateur en C# dans "code(R) 2004". Quelqu'un a-t-il l'article sous la main?

Encore merci pour ce travail.

signaler à un administrateur
Commentaire de yomm le 11/06/2007 21:00:37

SAlut Hideme

1- concernant ce point je te l'accorde, pout un fois j'ai pas fait beaucoup d'efforts coté commentaires, je vais essayé d'en ajouter histoire que tout cela devienne plus clair. Mais tu sais, c'est mon premier dev en .Net et j'étais plus pressé de le poster que de le commenter ;-)

2- concernant le tooltip text je n'ai rien paramétré de plus que ce que n'offre par défaut les contrôles ListView et TreeView. Par contre je ne vois pas le rapport entre ToolTip et GetNodeAt...surtout sur un ListView...Tu voulais pas plutot dire Treeview.GetNodeAt() ? Si tel est le cas, tu peux ajouter une propriété au direxplorer du genre:

    <Browsable(False)> _
    Public ReadOnly Property GetNodeAt(ByVal X As Integer, ByVal Y As Integer) As DirExplorerNode
        Get
            Return New DirExplorerNode(CType(TView.GetNodeAt(X, Y), TriStateTreeNode))
        End Get
    End Property

Voilà, par contre j'avoue, pour le moment je n'ai pas implémenté les événements liés aux contrôles auxquels se rapportent le DirExplorer et FileExplorer à savoir des événements du genre Expand, Check et autres...

@+

signaler à un administrateur
Commentaire de hideme le 11/06/2007 22:26:04

Coucouts Yomm

1- T'es le bienvenue. Vu la qualité de ton projet, c'est une invitation et non un reproche.
2- Ce que je lie c'est un ToolTip avec un TreeView, dans la form l'exemple de krosoft donne:

   Private Sub TreeView1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseMove

        ' Determine the node that is currently at the mouse pointer location.
        Dim theNode As TreeNode = TreeView1.GetNodeAt(e.X, e.Y)

        ' Check if mouse is paused over an actual node.
        If Not (theNode Is Nothing) Then
            ' Only update the ToolTip if tip needs to be changed.
            If (theNode.Tag <> ToolTip1.GetToolTip(TreeView1)) Then
                ToolTip1.SetToolTip(TreeView1, theNode.Tag)
            End If
        Else
            ' Mouse is not paused over a node. Therefore, clear the ToolTip.
            ToolTip1.SetToolTip(TreeView1, "")
        End If

    End Sub


Et ça marche. Je voudrais avoir une infobulle pour chaque élément d'un DirExplorer et FileExplorer.
Je vais voire pour appliquer ton bout de code sur les deux...

Merci

PS: Je me fais exigeant :) Penses-tu ajouter les miniatures. Non, sérieux, quelle démarche as-tu pour coder aussi proprement?

A+

signaler à un administrateur
Commentaire de yomm le 12/06/2007 19:39:47

>>re Hideme

Je comprends un peu mieux ton besoin;
petite question, as-tu besoin d'un Tooltip différent pour chaque item ou doit-il être unique à tout le contrôle ?

PS : pour un treeview tu peux faire TreeView1.Nodes(i).ToolTipText, je suis en train de faire des tests pour faire de même avec le DirExplorer.

signaler à un administrateur
Commentaire de yomm le 12/06/2007 20:04:44

>>Hideme

Je viens de faire des tests pour le DirExplorer, voilà le résutlat:

dans la class DirExplorerNode (fichier "Declarations")
il faut ajouter la propriété suivante :
------------------------------------------------------------------------------
    Public Property ToolTipText() As String
        Get
            Return m_Node.ToolTipText
        End Get
        Set(ByVal Value As String)
            m_Node.ToolTipText = Value
        End Set
    End Property
------------------------------------------------------------------------------

ensuite, dans le controle DirExplorer (fichier "DirExplorer")
il faut ajouter :
------------------------------------------------------------------------------
Public Shadows Event MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
------------------------------------------------------------------------------
je te conseille de le mettre avant la région "Propriétés" pour plus de cohérence

il faut ajouter la propriété suivante:
------------------------------------------------------------------------------
    <Browsable(False)> _
    Public ReadOnly Property GetNodeAt(ByVal X As Integer, ByVal Y As Integer) As DirExplorerNode
        Get
            If Not (TView.GetNodeAt(X, Y) Is Nothing) Then
                Return New DirExplorerNode(CType(TView.GetNodeAt(X, Y), TriStateTreeNode))
            Else
                Return Nothing
            End If
        End Get
    End Property
------------------------------------------------------------------------------

et dans la région "Treeview Events" ajoute cela:
------------------------------------------------------------------------------
    Private Sub TView_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TView.MouseMove
        RaiseEvent MouseMove(sender, e)
    End Sub
------------------------------------------------------------------------------

enfin si tu veux tester avec mon projet, rajoute ce code pour le DirExplorer1 (fichier "Form1") :
------------------------------------------------------------------------------
    Private Sub DirExplorer1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DirExplorer1.MouseMove
        Dim Node As YommExplorer.DirExplorerNode

        Node = DirExplorer1.GetNodeAt(e.X, e.Y)

        If Not (Node Is Nothing) Then
            Node.ToolTipText = "Salut Hideme"
        End If

    End Sub
------------------------------------------------------------------------------

en exécutant, puis en passant ta souris sur le DirExplorer1, tu verras que tous les ToolTips seront égaux à "Salut Hideme"

Voilà...pour le moment j'ai pas le temps d'en implémenter davantage mais j'espère que cela te permettra d'avancer.

@+

signaler à un administrateur
Commentaire de hideme le 12/06/2007 20:21:32

Chalut Yomm

En fait, pour être précis, je voudrais associer un fichier caché contenant la fiche détaillée (affiche=>image, tire, résumé, etc) d'un fichier vidéo. Ensuite faire pareil pour un répertoire contenant des fichiers audios. Donc ouvrir une infobulle contenant toutes ces informations.

Si je réussis à cloner suffisament l'explorateur zindows, je le vire. :) yes!

Merci poour ton intérêt. A+

signaler à un administrateur
Commentaire de medelidrissi le 14/07/2007 23:21:04

Salut Yomm

Rien à dire à part bravo. Excellent travail.

signaler à un administrateur
Commentaire de space_walker le 24/08/2007 11:15:31



Bonjour Yomm,

joli boulot !..
mais pour moi qui suis debutant, il me manque un peu d'aide ...
en particulier pour savoir comment utiliser les methodes et savoir a quoi elles correspondent !..

en effet, qua nd tu fais un "CTRL + ESPACE", il n'y a pas de description qui apparait ...

je cherche depuis hier à recuperer le path complet d'un fichier selectionner dans le fileexplorer !.. c'est certainement tout con .. mais je bloque !...

idem si je veux recuperer une liste de fichiers selectionnes ds le FileExplorer.
tes exemples me retournent l'ensemble des fichiers qui sont ds le FileExplorer ..


merci ;)

signaler à un administrateur
Commentaire de yomm le 24/08/2007 11:39:31

>> Medelidrissi
merci à toi; j'en profite de répondre à Space_Walker, j'espère que tu ne m'en voudra pas.

>> Space_Walker
tout d'abord merci.
Pour récupérer les items selectionnés dans le FileExplorer c'est assez simple comme tu vas le voir. En effet, en s'inspirant du code utilisé pour le bouton 9 "log checked items", on va étendre cela aux items sélectionnés et non pas cochés et au lieu d'écrire le nom du fichier dans la fenêtre de debu, on va écrire le chemin complet.
Pour faire cela :
*************************************************************************************
Dim fileitem As YommExplorer.FileExplorerItem

Debug.Print(Strings.StrDup(20, "-"))
For Each fileitem In FileExplorer1.Items
      If fileitem.IsSelected = True Then Debug.Print(fileitem.Path)
Next
Debug.Print(Strings.StrDup(20, "-"))
*************************************************************************************

Voilà, on parcourt les items du fileexplorer et si l'item est sélectionné on écrit son chemin complet dans le debug.

J'espère avoir répondu à ta question.

@+ et bon dev

signaler à un administrateur
Commentaire de space_walker le 24/08/2007 14:06:16


merci pour ta reponse, j'ai deja essaye cette syntax ( IsSelected ) et ca ne fonctionnait pas .. mais je crois que le probleme est plustot sur la detection de l'evennement..

en effet, j'ai mis un petit flag dans la procedure FileExplorer.click et celui ci ne se declanche pas ..
a priori, mon probleme vient du fait que je ne rentre pas dans la procedure !!!..

est ce qu'il ya une difference entre la selection par la souris d'un element ( celui ci se colore alors dans le FileExplorer ) et la validation du checkbox associé a cette element ?
car j'ai devalidé l'affichage des checkbox des elements du FileExplorer ..?

merci pour ta reactivité

signaler à un administrateur
Commentaire de yomm le 24/08/2007 15:06:25

>> Space_Walker
re:

Je viens de comprendre ton problème. En fait le FileExplorer ne revoit pas les événements du style click etc...Je n'ai implémenté ceci...

Pas de problème pour autant ;-)
C'est assez simple à mettre en place:
Dans le fichier FileExplorer.vb, ajoute ce petit code:
************************************************************
Shadows Event Click(ByVal sender As Object, ByVal e As System.EventArgs)
Private Sub LView_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LView.Click
RaiseEvent Click(sender, e)
End Sub
************************************************************

Le but de ce code est de dire : si l'on click sur le listview ( Handles LView.Click) alors on déclenche l'événement Click (FileExplorer_Click)
Attention au Shadows dans la déclaration de l'événement afin de bien lier notre événement Click à celui du control lui-même

Voilà, j'espère cette fois avoir bien compris ton problème ;-)

PS : utilise cette technique pour d'autres événements dont tu aurais besoin
PS2 : cette méthode fonctionne aussi pour le DirExplorer

@+ et bon dev

signaler à un administrateur
Commentaire de space_walker le 25/08/2007 13:26:57

Bjr Yomm,

effectivement, j'aurais pu chercher longtemps ! ;)
mais j'utilise uniquement ton OCX, pour ne pas surcharger mon projet avec tous les fichiers de ton Explorer ..
comment je dois faire ?

Un fichier d'aide et description ( pdf ? ) de ce qui est disponible dans l'OCX, serait certainement le bienvenu pour tous les nuls comme moi, qui se forment dans leur coin !! :)
mais je le concois, c'est du temps à y consacrer, chose que tu as deja bien donné !

Ne le prend pas mal, question de newbie, mais en quoi ton explorer differe des controles disponibles dans Microsoft.VisualBasic.Compatibility.VB6 ? Est ce le fait qu'il soit en .NET ?

Merci, bon WE :o)

signaler à un administrateur
Commentaire de space_walker le 31/08/2007 22:11:25

bjr Yomm,

sans reponse de ta part, je comprend qu'on ne peut utiliser uniquement l'OCX, si on veut gerer des evenements non codés ?

penses tu ajouter bientot ces evenements et fournir un OCX correspondant ? ou pour toi, ce projet est terminé ?

merci

signaler à un administrateur
Commentaire de space_walker le 14/09/2007 10:59:48


Salut Yomm, de retour sur ton explorateur apres avoir testé les controles de VB6 ..
ok je vois les differences ..

ne te serait pas possible de creer une Class plustot qu'un OCX ?
ca permetrait plus facilement ( d'apres ce que j'ai compris des class ! ), de modifier ton code pour ajouter les controles qu'il me manque ...

merci

signaler à un administrateur
Commentaire de mkaffel le 02/10/2007 10:59:50 10/10

Bonjour Yomm,

En premier lieu, toutes mes félicitations pour ce code de qualité.

J'aurai juste une petite question :

Comment mettre en place un drag and drop entre deux file explorer?

J'ai pensé à une configuration à ajouter dans les events du FileExplorer.vb, mais je suis pas sur et je vois pas très bien comment faire

Si qqun a une idée je suis preneur ;)

en vous remerciant de me lire

Kaffel M

signaler à un administrateur
Commentaire de salrouge le 18/10/2007 11:10:06

c'est tres utilisable
merci bien

signaler à un administrateur
Commentaire de smat06 le 28/10/2007 12:55:29

Franchement je suis bluffé ....
Mettre tes recherches et ton experience pour nous aider, bravo.
Super code, et en plus c'est ce que je cherchais.

signaler à un administrateur
Commentaire de yomm le 14/01/2008 23:31:27

Bonjour @ tous,

wow, ça fait longtemps que je suis absent du réseau !!!

>>Space_Walker
Désolé de cette absence prolongée.
Pour l'ocx, en .Net, il me semble plus simple d'utilisation de laisser le controle sous forme d'un control personnalisé plutot que de passer cela en class. Il t'est tout a fait possible de modifier le code à te guise afin d'y implémenter tes propores fonctionnalités, je pense avoir créer la base et il est vrai qu'il serait bon d'ajouter d'autres évènements mais cela fait pas mal de temp que n'ai plus avancé sur mes devs...

>>MKAFFEL
Je ne me suis pas posé la question du drag & drop, je pense que cela est tout a fait possible, il suffirait de récupérer le pidl du fichier glissé et de le traiter à la manière du copier/coller...c'est une fonction que je pourrais en effet ajouté...faut vraiment que je rouvre un éditeur de programmation ;-)

>>SALROUGE
Merci, et en plus tu me demande rien LOLLL

>>SMAT06
Comme tu l'as peut être constaté, j'ai bossé sur l'équivalent VB6 à une époque et je me suis dit que ce code pourrait être une bonne façon de découvrir .Net...et oui, j'ai jamais suivi de cours donc il faut bien découvrir d'une manière ou d'une autre, y a un début à tout et je me suis dit qu'avec ce code, cela me permettrait de découvrir pas mal de choses...
Merci pour ton commentaire.

>>@ tous:
vous allez m'obliger à me remettre à coder pour ajouter deux ou trois trucs à ce code!!! Cool!!!

@+ et bon devs @ vous tous

Yomm

signaler à un administrateur
Commentaire de space_walker le 15/01/2008 21:48:45

welcome back ;)

signaler à un administrateur
Commentaire de space_walker le 26/02/2008 23:44:32

Bonjour Yomm,

vraiment tres utile ton explorer .. je le colle partout :=)

dans mon probleme du jour, je souhaite connaitre le nombre de fichiers selectionnés dans le FileExplorer ?
avec la souris, tu en selectionnes un certain nombre et je souhaiterais rajouter une property de type NumSelectedFile .. ca me retourne le nombre de fichiers selectionnés lorsqu'on lache le bouton de la souris...

peux tu m'orienter dans la bonne direction stp ?

merci :)

signaler à un administrateur
Commentaire de ramuel le 13/03/2008 21:28:41

Très, très bon.
Excellent travail.

comment synchroniser les "checked" DirExplorer->FileExplorer?.

signaler à un administrateur
Commentaire de lokzowx le 01/07/2008 02:29:41

Salut Yomm
Merci pour l'excellente source (surtout pour le passage en Vb NET car c'est vraiment ce qu'il me fallait)...
Je me suis un peu penché sur le code (qui comme tu le dis si bien est vraiment une mine d'apprentissage de VB NET) et j'ai remarqué que les checkboxes du DirExplorer ne sont pas "persistantes" (ou alors je suis miro) dans le sens ou si tu ouvres un n½ud que tu coches quelques dossiers, que tu refermes ce n½ud (qui est donc dans l'état intermédiaire) puis que tu le rouvres... Alors tous les n½uds enfants seront de nouveau cochés...
Rien de bien grave somme toute mais je souhaitais utiliser le dirExplorer pour sélectionner des dossiers a utiliser dans mon appli (un peu sur le même style qu'Avast en fait). Ni une ni deux je fonce dans le code et je repère ce qui "gênait" (enfin me gênait puisque c'est un choix personnel). Les n½uds enfants sont toujours effacés avant une expansion du n½ud parent. J'ai donc bidouiller le code pour garder les informations sur les états de n½uds...

Bon jusque là, tu dois te dire : Ouais bon, le type, il raconte sa vie mais qu'est qu'il me veut ?

Et bien c'est simple, mes modifications sont vraiment de la bidouille de bas étage (qui ne collent certainement pas au boulot propre que tu as effectué). En fait, Je me contente de comparer les n½uds enfants avec la liste des sous-répertoires contenu dans l'arraylist puis d'enlever d'une part les n½uds qui n'existent plus et d'autre part les "sous-repertoires" dans l'arraylist qui figure déjà dans le n½ud.
Ensuite j'ajoute les nouveaux répertoires.
Ça a l'air de fonctionner mais je me demandais si tu n'avais pas une idée pour faire ça de manière efficace et logique par rapport au reste du code (j'avoue n'avoir compris que très peu de choses sur la partie de recherche de dossiers), car ma bidouille utilise une double boucle imbriquée (un de nombreuses variables temporaires) qui a mon avis n'a pas lieu d'être....

Bref si tu n'a rien compris au message ça me parait normal. Mais si tu es intéressé par m'aider a résoudre ce petit problème je pourrais t'envoyer le module que j'ai modifié...

En tout cas merci et bravo pour la source


P.S : Je me suis aussi penché sur le DragAndDrop mais alors la je t'en parle même pas tellement la méthode employée est barbare... J'ai aussi essayer de modifier la partie de mise en place du TreeRoot pour le DirExplorer car je souhaitais n'avoir qu'une partie d'arborescence disponible dès l'initialisation, j'ai reussi mais la c'est pareil je trouve la méthode un peu douteuse et franchement pas sure (ou pas de DirExplorer chargé - mais la j'ai pas réussi, sauf en faisant un clear sur le Treeview au chargement du formulaire)

signaler à un administrateur
Commentaire de salrouge le 14/07/2008 15:53:38

salut
je trouve le composant tres util !
est ce que la gestion des evenements du DirExplorer est gérée ? je vois que le code ne s'execute pas dans ces events !

signaler à un administrateur
Commentaire de gillardg le 28/07/2008 14:21:04

1 bravo pour ton Explorer
2 La Gestion Des Erreurs ????

quand on clique sur un dossier ou on a pas acces ça plante
************** Texte de l'exception **************
System.IO.FileNotFoundException: Erreur lors de la lecture du répertoire C:\Documents and Settings\User.
   à System.IO.FileSystemWatcher.StartRaisingEvents()
   à System.IO.FileSystemWatcher.Restart()
   à System.IO.FileSystemWatcher.set_Path(String value)
   à YommExplorer.FileExplorer.LoadFiles(IntPtr pidlFQ, IntPtr pidlREL)
   à YommExplorer.FileExplorer.InsertFiles(IntPtr pidlFQ, IntPtr pidlREL)
   à YommExplorer.FileExplorer.BeforeSelect(Object sender, TreeViewCancelEventArgs e)
   à System.Windows.Forms.TreeViewCancelEventHandler.Invoke(Object sender, TreeViewCancelEventArgs e)
   à System.Windows.Forms.TreeView.OnBeforeSelect(TreeViewCancelEventArgs e)
   à System.Windows.Forms.TreeView.TvnSelecting(NMTREEVIEW* nmtv)
   à System.Windows.Forms.TreeView.WmNotify(Message& m)
   à System.Windows.Forms.TreeView.WndProc(Message& m)
   à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

signaler à un administrateur
Commentaire de Pachanka le 18/11/2008 17:34:52 9/10

plop, tout d'abord bravo pour la source

question: j'ai recup le .ocx (direxplorer) que j'ai inclus dans un projet .net
mon probleme est que je n'arrive pas a recuperer l'evenement node_click pour connaitre le path complet de l'endroit ou je suis ainsi que le nom du fichier

j'ai vu que je pouvais faire un Dim objDir As DirExplorerOCX.DirExplorerNode
mais comment le rattacher au composant que j'ai cree graphiquement sur ma form?

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Un explorateur de dossier/fichier dans le meme controle [ par PaTaTe ] Je me trouve devant un probleme car je cherche un controle qui puisse etre un explorateur de dossier mais aussi de fichier dans le meme controle.Exemp repertoire ou fichier? [ par ElPiojo ] Bonjour,Dans un script vbs je recupere dans une variable "v" un chemin qui se termine par soit un fichier soit un dossier.Comment puis je faire pour s dossier/fichier "affichés" (explorer.exe) [ par retaks666 ] Bonjour, je voudrais savoir comment je peux obtenir le r&#233;pertoire en cour d'utilisation d'explorer.exe, existe t-il un hook, une api??? Merci de system32 ou tout fichier/dossier commençant par "system" est masqué dans Explorer [ par GERONIMO99 ] OS 2000 ProOption fichier cach&#233; enlev&#233;eAbsent de explorer.exe mais Fichier pr&#233;sent sous MsDosJ'ai quelque chose qui tourne en fond comm Copie de fichier en vb [ par Atomos83 ] Bonjour, j'aimerais r&#233;aliser une petite appli qui me sauvegarde des fichiers. Pour faire, j utilise les drivelistbox, filelistbox et dirlistbox. htm>txt [ par spaa05 ] bonsoircomment je peux convertir tous les fichier htm qui se trouve dans un dossier htm en fichier text et le enregistrer dans un dossier text copier un repertoire (dossier) sur un ftp [ par AlfaDemeter ] Salut, Hum je sais pas si c'est ici que je dois m'adresser fin bon je pense que si. J'aimerais savoir comment copier un r&#233;pertoire situer sur mon Supprimer un dossier ou un fichier en cours d'utilisation [ par JMKPROD ] Salut à tous! Sous WinXP je ne parviens pas à supprimer un dossier, un message m'indique que cette ressource est utilisée par une autre personne ou u Excel : ouverture fichier par macro sans indiquer le chemin complet [ par tadoussac ] Bonjour, je cherche le moyen d'ouvrir un fichier Excel par macro VB &#224; partir d'un fichier Word&nbsp;voici le code utilis&#233; :&nbsp;&nbsp;&nbsp Graver un dossier ou un fichier [ par wizard512 ] Salu, je cherche un script en vbs qui peut graver un dossier ou un fichier sur un lecteur sp&#233;cifier</FO


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,546 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.