begin process at 2012 05 27 07:09:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ASP.Net

 > NAVIGUER DANS LES DOSSIERS

NAVIGUER DANS LES DOSSIERS


 Information sur la source

Note :
Aucune note
Catégorie :ASP.Net Source .NET ( DotNet ) Classé sous :explorateur, explorer, browse, dossier, folder Niveau :Débutant Date de création :14/07/2004 Vu / téléchargé :9 751 / 394

Auteur : jcq

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 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: &nbsp;
  • <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: &nbsp;
				<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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) AJOUT DE METATAGS (KEYWORD) AUX MASTER PAGE ET ENFANT
Source .NET (Dotnet) FAIRE UNE PAUSE DANS UNE BOUCLE OU AUTRE...
Source avec Zip Source .NET (Dotnet) UTILISATION DES FICHIERS RESSOURCES POUR DU MULTILIGNUE
Source avec Zip Source .NET (Dotnet) GESTIONNAIRE DE PLUGIN ASCX

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) GUESTBOOK AVEC GRIDVIEW par DanMor498
Source avec Zip CHECKED DROPDOWNLIST par fredzool
Source avec Zip Source avec une capture Source .NET (Dotnet) GRIDVIEW WITH TREEVIEW AND CALLBACK par fredzool
Source avec Zip APPELLER UN WEBSERVICE DEPUIS JAVASCRIPT par fredzool
Source avec Zip Source .NET (Dotnet) MONEY TEXTBOX WITH EMBEDED JAVASCRIPT par fredzool

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) [VB 8][.NET 2][ATLAS]EXPLORATEUR (WINDOWS LIKE) DE FICHIER S... par FREMYCOMPANY
LIST DIRECTORY WITH SPECIFIED EXTENSION & LINK par Syruis
Source avec une capture EXPLORATEUR ASP EN UN SEUL FICHIER SANS INSTALLATION par informatika2001
Source avec Zip Source avec une capture UN PETIT EXPLORATEUR DE FICHIERS + SUPPRESSION DE FICHIERS par Yoyo2B
Source .NET (Dotnet) ASP.NET - SAUVEGARDER DANS UN FICHIER XML LA LISTE DES FICHI... par fabrice69

Commentaires et avis

Commentaire de fabrice69 le 15/07/2004 11:31:56 administrateur CS

Les principales différences entre nos deux projets sont :
- le tien est lié aux répertoires où se trouve placé l'application WEB.
- dans ton application, le stockage des variable est fait en session.

En tous cas, c'est une bonne idée de commencer avec ce type d'exemple ar ca utilise un peu tout en même temps.

F___

Commentaire de fabrice69 le 15/07/2004 11:38:47 administrateur CS

Un conseil tout de même pour les prochains développement :
- Evite d'utiliser des mots réservés pour les déclarations de tes variables

Dans cet exemple tu définis 'Array' comme une variable de type ArrayList. Or Array est aussi un type de variable :
- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemArrayMembersTopic.asp

De ce fait, ca peut être dangereux mais surtout la comprehension de ton code est dégradée à cause de cela.

F___

Commentaire de jcq le 15/07/2004 11:44:22

Ok je le note, merci.
C'est justement ce type de retour qui fait avancé les choses... Avoir l'avis des autres est trés important.

bye

 Ajouter un commentaire


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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,888 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales