Implémentation du dossier de conception ASP.NET du disque dur réseau
Auteur:Eve Cole
Date de mise à jour:2009-06-30 15:39:42
Comme évoqué lors de l'introduction de la notion de « disque dur réseau », chaque utilisateur dispose de son propre espace sur le « disque dur réseau ». C'est ainsi que cela est géré dans la conception de programme suivante : un dossier fixe est fourni à l'utilisateur, dans lequel l'utilisateur peut ajouter/supprimer de nouveaux dossiers ou fichiers. Comme le montre la figure 1, lorsque vous ouvrez la page Web pour la première fois, tout le contenu du dossier (y compris les fichiers et les dossiers) sera répertorié. Si vous souhaitez accéder au dossier de niveau suivant, vous pouvez sélectionner le dossier et cliquer sur le bouton « Ouvrir » pour entrer. La mise en œuvre de la fonction d'affichage du contenu du dossier sera expliquée étape par étape ci-dessous.
Figure 1 Interface utilisateur principale |
1. Chargement des pages
Étant donné que le répertoire utilisateur fourni par le programme est fixe, tel que c:UserDir, et que tout le contenu du dossier doit être affiché après le chargement de la page, les opérations correspondantes doivent être effectuées dans Page_Load : déterminez d'abord si le dossier existe , sinon S'il existe, vous devez d'abord le créer, puis lister le contenu sous le dossier. Le code est implémenté comme suit :
private void Page_Load (expéditeur de l'objet, System.EventArgs e) { //Mettez le code utilisateur ici pour initialiser la page
si(Page.IsPostBack==false) { CurrentPath= @"c:UserDir"; //Définissez le répertoire courant if(Directory.Exists (@"c:UserDir")==false) //Si le répertoire n'existe pas, créez le répertoire Directory. CreateDirectory( @"c:UserDir"); LoadDir(CurrentPath); //Initialiser le répertoire de chargement} }
|
La méthode LoadDir(string FullPath) est utilisée pour lister tout le contenu du dossier. Le code est le suivant :
vide privé LoadDir (chaîne FullPath) { Chemin actuel=Chemin complet ; Valeurs ArrayList = new ArrayList(); chaîne [] MesFichiers,MesRépertoires ; MyFiles = Directory.GetFiles(FullPath); //Récupère tous les fichiers du répertoire if(CurrentPath!=@"c:UserDir") //S'il ne s'agit pas du répertoire supérieur, ajoutez l'option "retour au répertoire supérieur" { valeurs.Add("Retour au répertoire supérieur"); }
values.AddRange(MyFiles); //Ajouter des fichiers MyDirs= Directory.GetDirectories(FullPath); //Obtenir tous les répertoires de ce répertoire values.AddRange(MyDirs); //Ajouter des répertoires FileList.DataSource=values; FileList.DataBind(); //Lier les données } |
Tout d'abord, définissez les valeurs d'un objet tableau ArrayList pour stocker tout le contenu du répertoire de niveau supérieur (y compris les noms de dossiers et les noms de fichiers). La méthode Directory.GetFiles() renvoie tous les noms de fichiers dans le répertoire de niveau supérieur. Son type de retour est un tableau de chaînes, donc un objet de classe chaîne MyFiles doit être défini pour enregistrer les noms de fichiers renvoyés ; fichiers dans le répertoire de niveau supérieur, définissez également un objet tableau de chaînes MyDirs pour les enregistrer. Après avoir terminé cela, vous pouvez ajouter les tableaux MyFiles et MyDirs à l'objet Values. La dernière chose à faire est d'ajouter une source de données et de lier les données à l'objet de contrôle ListBox FileList. Une chose doit être expliquée : si le répertoire courant n'est pas le répertoire de niveau supérieur, vous devez pouvoir revenir au répertoire de niveau supérieur. Pour ce faire, vous devez ajouter le "Retour au répertoire de niveau supérieur". option à la FileList.
2. Visualisation du répertoire à plusieurs niveaux
Avec les deux morceaux de code répertoriés dans la section précédente, vous pouvez répertorier tout le contenu du répertoire de niveau supérieur lors du chargement de la page. Bien entendu, répertorier le contenu du répertoire de niveau supérieur ne suffit pas. À l'instar du système d'exploitation Windows, les répertoires de dossiers du disque dur réseau sont également imbriqués et il existe deux niveaux ou plus de répertoires de dossiers. À cette fin, certains traitements correspondants doivent être effectués afin que les utilisateurs puissent visualiser le contenu des dossiers multi-niveaux. La conception d'interface précédente fournit un bouton "Ouvrir". Une fois que l'utilisateur a sélectionné le dossier correspondant, cliquez sur le bouton pour afficher le contenu du dossier.
Ajoutez maintenant le code du bouton "Ouvrir". Double-cliquez sur le bouton dans le panneau « Conception », et le système y ajoutera automatiquement un événement. Le contenu du code est le suivant :
private void btnOpen_Click (expéditeur d'objet, System.EventArgs e) { if(FileList.SelectedItem.Text=="Retour au répertoire de niveau supérieur") //Retour au répertoire de niveau supérieur{ string ParentPath=Directory.GetParent(CurrentPath).ToString(); LoadDir(ParentPath); retour; } sinon //ouvrir le répertoire{ LoadDir(FileList.SelectedItem.Text); } } |
Le programme détermine d'abord si l'utilisateur a sélectionné "Retour au répertoire supérieur". Si tel est le cas, vous devez d'abord renvoyer le nom du dossier de niveau supérieur via la méthode Directory.GetParent(), puis appeler la méthode LoadDir() pour afficher le contenu du répertoire si l'utilisateur ne sélectionne pas « Retour au niveau supérieur ; directory" mais un nom de dossier, vous pouvez appeler directement la méthode LoadDir(). FileList.SelectedItem.Text est le nom du dossier sélectionné, qui est utilisé comme paramètre de la méthode LoadDir().