Accueil > > > NAVIGUER DANS LES DOSSIERS
NAVIGUER DANS LES DOSSIERS
Information sur la source
Description
C'est mon premier code posté, car débutant en ASP.NET et venant du VB6, y'a plein de questions au début que je me pose en codant...
Donc j'ai essayé de faire un code le plus simple possible pour naviguer dans les répertoires du serveur et d'afficher en même temps les fichiers...
Par contre aucune idée, si c 'est la technique officiel qu'il faut utiliser ou pas !!! donc je vous remercie de me donner des conseils...
Source
- Téléchargez le ZIP pour avoir le projet !
-
-
- En VB sous visual studio 2003, c 'est le code behind:
- --------------------------------------------------------------------
- Imports System.IO
-
- Public Class WebForm1
- Inherits System.Web.UI.Page
-
- Private Const cSession_DossierEnCours = "DossierEnCours"
- Private Const cSession_ListeDossiers = "ListeDossiers"
- Protected WithEvents lblFichier As System.Web.UI.WebControls.Label
- Private Const cSession_ListeFichiers = "ListeFichiers"
-
-
- #Region " Code généré par le Concepteur Web Form "
-
- 'Cet appel est requis par le Concepteur Web Form.
- <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
-
- End Sub
- Protected WithEvents lblDossier As System.Web.UI.WebControls.Label
- Protected WithEvents dlDossiers As System.Web.UI.WebControls.DataList
- Protected WithEvents txtTypeFichier As System.Web.UI.WebControls.TextBox
- Protected WithEvents dlfichiers As System.Web.UI.WebControls.DataList
- Protected WithEvents cmdFichier As System.Web.UI.WebControls.LinkButton
-
- 'REMARQUE : la déclaration d'espace réservé suivante est requise par le Concepteur Web Form.
- 'Ne pas supprimer ou déplacer.
- Private designerPlaceholderDeclaration As System.Object
-
- Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
- 'CODEGEN : cet appel de méthode est requis par le Concepteur Web Form
- 'Ne le modifiez pas en utilisant l'éditeur de code.
- InitializeComponent()
- End Sub
-
- #End Region
-
- Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
-
- 'Si la session existe pas: sauvegarde du répertoire par défaut
- If Session(cSession_DossierEnCours) Is Nothing Then
- Session(cSession_DossierEnCours) = Server.MapPath("")
- End If
-
-
- 'Si la session existe pas: on récupere, affiche et sauvegarde la liste des répertoires
- If Session(cSession_ListeDossiers) Is Nothing Then
- mAffichage_Dossiers("")
- End If
-
- 'Si la session existe pas: on récupere, affiche et sauvegarde la liste des fichiers
- If Session(cSession_ListeFichiers) Is Nothing Then
- mAffichage_Fichiers()
- End If
-
- End Sub
-
-
- Private Sub mAffichage_Dossiers(ByRef sPath As String)
-
-
- Dim sDirs As Array 'Liste des chemins des répertoires en bloc
- Dim sDir As String 'nom de chaque chemin de répertoire
- Dim Array As New ArrayList 'Tableau final avec juste le nom de chaque répertoire
-
-
- 'Récupére dans la session le nom du répertoire en cours
- 'j'utilise un objet directory car il s'occupe de mettre en forme valide un répertoire
- Dim oMyDir As Directory
- oMyDir.SetCurrentDirectory(Session(cSession_DossierEnCours))
-
- 'Récupére tous les sous-répertoires complet
- sDirs = Directory.GetDirectories(oMyDir.GetCurrentDirectory & Path.DirectorySeparatorChar & sPath)
-
- 'Réinitialise le répertoire en cours
- oMyDir.SetCurrentDirectory(oMyDir.GetCurrentDirectory & Path.DirectorySeparatorChar & sPath & Path.DirectorySeparatorChar)
- lblDossier.Text = oMyDir.GetCurrentDirectory
- 'Sauvegarde dans la session le répertoire en cours
- Session(cSession_DossierEnCours) = oMyDir.GetCurrentDirectory
-
- 'Met dans un tableau uniquement le nom de répertoire
- Array.Clear()
- Array.Add("../")
- For Each sDir In sDirs
- Array.Add(Path.GetFileName(sDir))
- Next
-
-
- 'Affichage des répertoires dans une datalist
- With dlDossiers
- .DataSource = Array
- .DataBind()
- .Dispose()
- End With
-
-
- 'Sauvegarde du tableau de répetoire dans une session
- 'pour gérer par la suite l'événement de la datalist
- Session(cSession_ListeDossiers) = Array
-
- End Sub
-
- Private Sub mAffichage_Fichiers()
-
- Dim sFiles As Array 'Liste des fichiers en bloc
- Dim sFile As String 'nom de chaque fichier
- Dim Array As New ArrayList 'Tableau final avec la classe FileInfo concernant chaque fichier
-
- 'Vérifie qu'il y a une extension
- Dim sTemp As String = txtTypeFichier.Text
- If sTemp.Length = 0 Then sTemp = "*.*"
-
- 'Récupére la liste des fichiers du répertoire de la session
- sFiles = (Directory.GetFiles(Session(cSession_DossierEnCours), sTemp))
- For Each sFile In sFiles
- Array.Add(New FileInfo(sFile))
- Next
-
-
- 'Affichage des fichiers dans une datalist
- With dlfichiers
- .DataSource = Array
- .DataBind()
- .Dispose()
- End With
-
-
- 'Sauvegarde du tableau de fichier dans une session
- 'pour gérer par la suite l'événement de la datalist
- Session(cSession_ListeFichiers) = Array
-
- End Sub
-
-
- Private Sub dlFichiers_EditCommand(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlfichiers.EditCommand
- 'Lorsque l'on clique sur un élément de la datalist
- 'on récupére l'index pour savoir quel est l'élément du tableau sauvegardé
- 'dans la session
- Dim oFile As FileInfo = Session(cSession_ListeFichiers)(e.Item.ItemIndex)
- lblFichier.Text = oFile.Name
- End Sub
-
- Private Sub dlDossiers_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlDossiers.EditCommand
- 'Lorsque l'on clique sur un élément de la datalist
- 'on récupére l'index pour savoir quel est l'élément du tableau sauvegardé
- 'dans la session
- mAffichage_Dossiers(Session(cSession_ListeDossiers)(e.Item.ItemIndex))
- mAffichage_Fichiers()
- End Sub
-
- Private Sub txtTypeFichier_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTypeFichier.TextChanged
- mAffichage_Fichiers()
- End Sub
- End Class
-
-
-
- En VB sous visual studio 2003, c 'est le code HTML:
- --------------------------------------------------------------------
- <%@ Page Language="vb" AutoEventWireup="false" Codebehind="index.aspx.vb" Inherits="nav_dossier.WebForm1"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <HTML>
- <HEAD>
- <title>WebForm1</title>
- <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
- <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
- <meta name="vs_defaultClientScript" content="JavaScript">
- <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
- </HEAD>
- <body>
- <font face="Tahoma" size="2">
- <form runat="server">
- Répertoire en cours:
- <asp:Label id="lblDossier" runat="server" ForeColor="Green">Label</asp:Label>
- <!-- Liste des répertoires -->
- <asp:datalist id="dlDossiers" runat="server" ShowHeader="False" ShowFooter="False" RepeatDirection="Vertical"
- RepeatColumns="1">
- <ItemTemplate>
- <font face="Tahoma" size="2">
- <asp:LinkButton id="cmdDossier" CommandName="edit" runat="server">
- <%# container.dataitem %></font> </asp:LinkButton>
- </ItemTemplate>
- </asp:datalist><br>
- Type de fichiers:
- <asp:TextBox id="txtTypeFichier" runat="server" Width="32px">*.*</asp:TextBox>
- <!-- Liste des fichiers -->
- <asp:datalist id="dlfichiers" runat="server" ShowHeader="False" ShowFooter="False" RepeatDirection="Vertical"
- RepeatColumns="1">
- <ItemTemplate>
- <font face="Tahoma" size="2">
- <asp:LinkButton id="cmdFichier" CommandName="edit" runat="server">
- <%# container.dataitem %>
- </asp:LinkButton>
- </font>
- </ItemTemplate>
- </asp:datalist>
- <br>
- <br>
- <asp:Label id="lblFichier" runat="server" ForeColor="Green"></asp:Label>
- </form>
- </font>
- </body>
- </HTML>
-
-
Téléchargez le ZIP pour avoir le projet !
En VB sous visual studio 2003, c 'est le code behind:
--------------------------------------------------------------------
Imports System.IO
Public Class WebForm1
Inherits System.Web.UI.Page
Private Const cSession_DossierEnCours = "DossierEnCours"
Private Const cSession_ListeDossiers = "ListeDossiers"
Protected WithEvents lblFichier As System.Web.UI.WebControls.Label
Private Const cSession_ListeFichiers = "ListeFichiers"
#Region " Code généré par le Concepteur Web Form "
'Cet appel est requis par le Concepteur Web Form.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents lblDossier As System.Web.UI.WebControls.Label
Protected WithEvents dlDossiers As System.Web.UI.WebControls.DataList
Protected WithEvents txtTypeFichier As System.Web.UI.WebControls.TextBox
Protected WithEvents dlfichiers As System.Web.UI.WebControls.DataList
Protected WithEvents cmdFichier As System.Web.UI.WebControls.LinkButton
'REMARQUE : la déclaration d'espace réservé suivante est requise par le Concepteur Web Form.
'Ne pas supprimer ou déplacer.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN : cet appel de méthode est requis par le Concepteur Web Form
'Ne le modifiez pas en utilisant l'éditeur de code.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Si la session existe pas: sauvegarde du répertoire par défaut
If Session(cSession_DossierEnCours) Is Nothing Then
Session(cSession_DossierEnCours) = Server.MapPath("")
End If
'Si la session existe pas: on récupere, affiche et sauvegarde la liste des répertoires
If Session(cSession_ListeDossiers) Is Nothing Then
mAffichage_Dossiers("")
End If
'Si la session existe pas: on récupere, affiche et sauvegarde la liste des fichiers
If Session(cSession_ListeFichiers) Is Nothing Then
mAffichage_Fichiers()
End If
End Sub
Private Sub mAffichage_Dossiers(ByRef sPath As String)
Dim sDirs As Array 'Liste des chemins des répertoires en bloc
Dim sDir As String 'nom de chaque chemin de répertoire
Dim Array As New ArrayList 'Tableau final avec juste le nom de chaque répertoire
'Récupére dans la session le nom du répertoire en cours
'j'utilise un objet directory car il s'occupe de mettre en forme valide un répertoire
Dim oMyDir As Directory
oMyDir.SetCurrentDirectory(Session(cSession_DossierEnCours))
'Récupére tous les sous-répertoires complet
sDirs = Directory.GetDirectories(oMyDir.GetCurrentDirectory & Path.DirectorySeparatorChar & sPath)
'Réinitialise le répertoire en cours
oMyDir.SetCurrentDirectory(oMyDir.GetCurrentDirectory & Path.DirectorySeparatorChar & sPath & Path.DirectorySeparatorChar)
lblDossier.Text = oMyDir.GetCurrentDirectory
'Sauvegarde dans la session le répertoire en cours
Session(cSession_DossierEnCours) = oMyDir.GetCurrentDirectory
'Met dans un tableau uniquement le nom de répertoire
Array.Clear()
Array.Add("../")
For Each sDir In sDirs
Array.Add(Path.GetFileName(sDir))
Next
'Affichage des répertoires dans une datalist
With dlDossiers
.DataSource = Array
.DataBind()
.Dispose()
End With
'Sauvegarde du tableau de répetoire dans une session
'pour gérer par la suite l'événement de la datalist
Session(cSession_ListeDossiers) = Array
End Sub
Private Sub mAffichage_Fichiers()
Dim sFiles As Array 'Liste des fichiers en bloc
Dim sFile As String 'nom de chaque fichier
Dim Array As New ArrayList 'Tableau final avec la classe FileInfo concernant chaque fichier
'Vérifie qu'il y a une extension
Dim sTemp As String = txtTypeFichier.Text
If sTemp.Length = 0 Then sTemp = "*.*"
'Récupére la liste des fichiers du répertoire de la session
sFiles = (Directory.GetFiles(Session(cSession_DossierEnCours), sTemp))
For Each sFile In sFiles
Array.Add(New FileInfo(sFile))
Next
'Affichage des fichiers dans une datalist
With dlfichiers
.DataSource = Array
.DataBind()
.Dispose()
End With
'Sauvegarde du tableau de fichier dans une session
'pour gérer par la suite l'événement de la datalist
Session(cSession_ListeFichiers) = Array
End Sub
Private Sub dlFichiers_EditCommand(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlfichiers.EditCommand
'Lorsque l'on clique sur un élément de la datalist
'on récupére l'index pour savoir quel est l'élément du tableau sauvegardé
'dans la session
Dim oFile As FileInfo = Session(cSession_ListeFichiers)(e.Item.ItemIndex)
lblFichier.Text = oFile.Name
End Sub
Private Sub dlDossiers_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlDossiers.EditCommand
'Lorsque l'on clique sur un élément de la datalist
'on récupére l'index pour savoir quel est l'élément du tableau sauvegardé
'dans la session
mAffichage_Dossiers(Session(cSession_ListeDossiers)(e.Item.ItemIndex))
mAffichage_Fichiers()
End Sub
Private Sub txtTypeFichier_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTypeFichier.TextChanged
mAffichage_Fichiers()
End Sub
End Class
En VB sous visual studio 2003, c 'est le code HTML:
--------------------------------------------------------------------
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="index.aspx.vb" Inherits="nav_dossier.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<font face="Tahoma" size="2">
<form runat="server">
Répertoire en cours:
<asp:Label id="lblDossier" runat="server" ForeColor="Green">Label</asp:Label>
<!-- Liste des répertoires -->
<asp:datalist id="dlDossiers" runat="server" ShowHeader="False" ShowFooter="False" RepeatDirection="Vertical"
RepeatColumns="1">
<ItemTemplate>
<font face="Tahoma" size="2">
<asp:LinkButton id="cmdDossier" CommandName="edit" runat="server">
<%# container.dataitem %></font> </asp:LinkButton>
</ItemTemplate>
</asp:datalist><br>
Type de fichiers:
<asp:TextBox id="txtTypeFichier" runat="server" Width="32px">*.*</asp:TextBox>
<!-- Liste des fichiers -->
<asp:datalist id="dlfichiers" runat="server" ShowHeader="False" ShowFooter="False" RepeatDirection="Vertical"
RepeatColumns="1">
<ItemTemplate>
<font face="Tahoma" size="2">
<asp:LinkButton id="cmdFichier" CommandName="edit" runat="server">
<%# container.dataitem %>
</asp:LinkButton>
</font>
</ItemTemplate>
</asp:datalist>
<br>
<br>
<asp:Label id="lblFichier" runat="server" ForeColor="Green"></asp:Label>
</form>
</font>
</body>
</HTML>
Conclusion
Je viens d'avoir un message sur le forum(en référence à une question concernant cette source) du trés trés actif Fabrice69... Il a un source qui fait bien plus que cet exemple: http://www.aspfr.com/code.aspx?id=23262
Mais bon cet exemple est surtout fait pour avoir votre avis sur la technique utilisée...
Merci
Bart-Rennes
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Upload [ par superjc ]
Je cherche un moyen d'uploader un dossier sans avoir a selectionner le nom des fichiers. Autrement, on entre le chemin du dossier et on l'uploadMerci
Mettre fenêtre internet explorer en plein ecran [ par guss ]
Bonjour,j'aimerai mettre au lancement ma fenêtre internet exploreren plein ecran , comme si j'appuyait sur le bouton "Plein Ecran".je désire faire cel
Création d'un dossier avec ASPSmartUpload [ par tibonet ]
Est-ce que quelqu'un sait créer un dossier avec ASPSmartUpload.Merci
Lister un dossier [ par FrancoisPignon ]
Je voudrais afficher sur ma page asp toutes les images .jpg contenues dans mon répertoire "photos"... comment puis-je faire en ASP (sans utiliser une
placement du global.asa dans un sous-dossier [ par sbertrand ]
Bonjour,j'ai placé le fichier global.asa dans un sous-dossier de l'arborescence de mon site. Lors de l'appel des pages de ce dossier j'ai des erreurs.
Pb de lien [ par screenup ]
Bonjour, jai un probleme avec le code ci-dessous :CheminLocal = Server.MapPath(".\") & "\dossier" ' Dossier d'upload par defautIl s'agit d'un bout de
pb de fichier de destination [ par screenup ]
Bonjour, j'ai un probleme avec le code ci-dessous :CheminLocal = Server.MapPath(".\") & "\dossier" ' Dossier d'upload par defautIl s'agit d'un bout de
internet explorer+asp [ par agentpsyko ]
je voudrais savoir si c'est possible de faire un script asp ou javascript pour interdire l'acces a une page si la personne a tapé son adresse dans int
script en asp pour effacer un dossier [ par harmegnies ]
je cherche un script en asp qui permet au lancement de supprimer tous les répertoires d'un site et les fichiers s'y trouvant.Merci d'avance.Patrice Ha
upload et cgi [ par xclear ]
Bonjour, j'ai un probleme avec le code ci-dessous :CheminLocal = Server.MapPath(".\") & "\dossier" ' Dossier d'upload par defautIl s'agit d'un bout de
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
GRIDVIEW CHECKBOXGRIDVIEW CHECKBOX par invent001
Cliquez pour lire la suite par invent001 OUTIL MYSQLOUTIL MYSQL par nobla
Cliquez pour lire la suite par nobla
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|