begin process at 2012 05 27 07:01:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

FileSystem

 > LISTER UN REPERTOIRE, VISUALISER UN FICHIER (MODE TXT), EFFACER UN FICHIER (JSCRIPT) CORRIGER

LISTER UN REPERTOIRE, VISUALISER UN FICHIER (MODE TXT), EFFACER UN FICHIER (JSCRIPT) CORRIGER


 Information sur la source

Note :
Aucune note
Catégorie :FileSystem Niveau :Débutant Date de création :18/09/2003 Date de mise à jour :24/09/2003 09:36:58 Vu :18 859

Auteur : sdh

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

 Description

Ce code permet 3 choses :
- Lister un repertoire du serveur.
- Visualiser les fichiers du repertoire en mode texte
- Effacer un fichier.

au moyen de 2 fichiers asp
- lstfile_log.asp
- readfile.asp

Le code est ecrit en JSCRIPT.


Source

  • <%
  • /* ***************************************************************************
  • *************** LE FICHIER lstfile_log.asp ***************
  • *************************************************************************** */
  • %>
  • <%@ Language=JScript %>
  • <%
  • /* **************************************************************************
  • Cette page permet de lister les fichiers dans un repertoire
  • un maximum de cst_MaxFiles fichiers peuvent être listés.
  • **************************************************************************
  • language : Jscript (tester sur XP pro, jsript version 5)
  • **************************************************************************
  • Auteur : D.HIVERT (septembre 2003)
  • **************************************************************************
  • Parametres: (POST ou GET) /
  • --------------------------
  • => PATH= // indique le chemin reel du repertoire à lister
  • => EDIT= // indiwue si on pourra lire (methode texte) le fichier
  • => DELETE= // indique si on pourra supprimer le fichier depuis la page
  • exemple d'utilisation : /
  • ------------------------
  • http://monserveur/monrep/lstfile_log.asp?PATH=c:\temp&DELETE=true&EDIT=false
  • pour raffraichir la page appuyer sur le bouton 'delete'
  • Liste des fonctions de la page /
  • -------------------------------
  • getParam (_param, _default)
  • DelFile (myFile)
  • FolderExist (myFolder)
  • TriTableau (LeTableau)
  • listeFile (l_s_Path)
  • date2string (d)
  • **************************************************************************
  • pages liées ou utilisées /
  • -------------------------
  • readfile.asp => sert à lire un fichier en mode texte
  • ************************************************************************** */
  • /* --------------------------------------------
  • VARIABLES DE CONFIG DE LA PAGE
  • -------------------------------------------- */
  • var cst_PathFiles = "";
  • var cst_EDIT = false;
  • var cst_DELETE = false;
  • /* --------------------------------------------
  • Definition des constantes
  • -------------------------------------------- */
  • //pour l'objet File
  • var cstPath = 0;
  • var cstName = 1;
  • var cstSize = 2;
  • var cstDateCreated = 3;
  • var cstDateLastAccessed = 4;
  • var cstDateLastModified = 5;
  • //Pour la page
  • var cst_MaxFiles = 1000;
  • /* --------------------------------------------
  • recup des variables
  • -------------------------------------------- */
  • nbFile = getParam("nbFile", "");
  • btn_Del = getParam("btn_Del", "");
  • cst_PathFiles = getParam("PATH","")+"";
  • cst_EDIT = getParam("EDIT", "");
  • cst_DELETE = getParam("DELETE", "");
  • /* --------------------------------------------
  • Verification d'execution de la page
  • -------------------------------------------- */
  • //-Si pas de chemin alors pas de recherche
  • if (cst_PathFiles=="" || cst_PathFiles==null) {
  • Response.write ("<center>Il n'y a pas de chemin indiqué</center>");
  • Response.end();
  • }
  • //-Peut on editer les fichiers
  • if (cst_EDIT=='true' || cst_EDIT=='TRUE' || cst_EDIT=='True') {
  • cst_EDIT = true;
  • }
  • //-Peut on supprimer les fichiers
  • if (cst_DELETE=='true' || cst_DELETE=='TRUE' || cst_DELETE=='True') {
  • cst_DELETE = true;
  • }
  • /* --------------------------------------------
  • Test la coherance de la chaine
  • -------------------------------------------- */
  • if ( String(cst_PathFiles.substr(cst_PathFiles.length-1,1))!=String("\\") ) {
  • cst_PathFiles += "\\";
  • }
  • else {
  • }
  • /* --------------------------------------------
  • On verifie que le chemin existe
  • -------------------------------------------- */
  • if (!FolderExist(cst_PathFiles)) {
  • Response.write ("<center>Le repertoire <b>"+cst_PathFiles+"</b> n'existe pas </center>");
  • Response.end();
  • }
  • /* --------------------------------------------
  • permet de supprimer les fichiers
  • -------------------------------------------- */
  • if (btn_Del!="") {
  • var myChk;
  • for (i=0; i<nbFile; i++) {
  • myChk = getParam("chkFile"+i,"");
  • if (myChk!="") {
  • DelFile (myChk);
  • }
  • }
  • }
  • /* --------------------------------------------
  • recup des fichiers
  • -------------------------------------------- */
  • var tabFiles;
  • var tabFilesTrie;
  • tabFiles = listeFile (cst_PathFiles);
  • tabFilesTrie = TriTableau (tabFiles);
  • /* ********************************************************************************** */
  • /* **********************LES FONCTIONS DE LA PAGE************************************ */
  • /* ********************************************************************************** */
  • /* ----------------------------------------------------------------------------------
  • Fonction : getParam
  • Description : récupère un paramètre (méthode GET ou POST)
  • Entrées : nom du paramètre, valeur par défaut
  • Sorties : chaine
  • ---------------------------------------------------------------------------------- */
  • function getParam(_param, _default) {
  • var r = new String;
  • //on recherche le paramétre dans les paramétres passé en GET
  • if (""+ Request.QueryString(_param) != 'undefined')
  • r = Request.QueryString(_param);
  • //on recherche le paramétre dans les paramétres passé en POST
  • if (""+ Request.Form(_param) != 'undefined')
  • r = Request.Form(_param);
  • //si on a pas de parametre, on retourne la valeur par defaut
  • if (r==null || r=='')
  • r = _default;
  • return r;
  • }
  • /* ----------------------------------------------------------------------------------
  • fonction : DelFile
  • description : Permet de supprimer un fichier du disk (si le repertoire le permet)
  • entree : nom du fichier
  • sortie : -
  • ---------------------------------------------------------------------------------- */
  • function DelFile (myFile) {
  • var Fs;
  • try {
  • Fs=new ActiveXObject("Scripting.FileSystemObject");
  • Fs.deleteFile (myFile+"");
  • } catch (e){
  • Response.write ("Le fichier "+myFile+" n'est pas effacé<br>");
  • }
  • }
  • /* ----------------------------------------------------------------------------------
  • fonction : FolderExist
  • description : Permet de savoir si un repertoire existe
  • entree : tableau à trier
  • sortie : -
  • ---------------------------------------------------------------------------------- */
  • function FolderExist (myFolder) {
  • var fso;
  • fso = new ActiveXObject("Scripting.FileSystemObject");
  • return fso.FolderExists(myFolder);
  • }
  • /* ----------------------------------------------------------------------------------
  • fonction : TriTableau
  • description : Permet renvoyer un tableau Trié issu du tableau transmis en paramétre
  • entree : tableau à trier
  • sortie : -
  • ---------------------------------------------------------------------------------- */
  • function TriTableau (LeTableau) {
  • var Ligne_Tampon;
  • var NewPasse;
  • var tmpLeTableau, Max;
  • Max = LeTableau.length;
  • tmpLeTableau = new Array(Max);
  • if (Max==null || Max=='undefined') return LeTableau;
  • //-copie le tableau
  • for (i=0; i<Max; i++) {
  • tmpLeTableau[i] = LeTableau[i];
  • }
  • NewPasse = "true";
  • while (NewPasse!="false") {
  • //-Chaque élément est comparé à celui qui lui est supérieur dans le classement
  • NewPasse = "false";
  • for (j=0; j<(Max-1); j++) {
  • //-Test si J et plus grand que J+1
  • if ( (tmpLeTableau[j]>tmpLeTableau[j + 1]) && tmpLeTableau[j]!=null && tmpLeTableau[j]!="") {
  • Ligne_Tampon = tmpLeTableau[j];
  • tmpLeTableau[j] = tmpLeTableau[j + 1];
  • tmpLeTableau[j + 1] = Ligne_Tampon;
  • NewPasse = "true";
  • }
  • }
  • }
  • return tmpLeTableau;
  • }
  • /* ----------------------------------------------------------------------------------
  • fonction : listeFile
  • description : Permet de trouver tous les fichiers d'un Repertoire
  • entree : chemin physique
  • sortie : tableau de String
  • note : Organisation des resultats
  • Path;Name;Size;DateCreated;DateLastAccessed;DateLastModified
  • ---------------------------------------------------------------------------------- */
  • function listeFile (l_s_Path) {
  • var i, s, re;
  • var tab_Files = new Array (cst_MaxFiles);
  • //-Definiton des variables
  • var l_fs //systeme de fichier
  • var i;
  • //-Creation de la variable de Drives--
  • l_fs = new ActiveXObject("Scripting.FileSystemObject");
  • //-Creation de la colections de FILES
  • l_folder = l_fs.getFolder(l_s_Path);
  • l_files = new Enumerator(l_folder.files);
  • //-Boucle sur tous les fichiers du répertoires (Extention)
  • i = 0;
  • s = new String("");
  • for (; !l_files.atEnd() && i<cst_MaxFiles; l_files.moveNext()) {
  • s = l_files.item();
  • a = s.Path+";"+s.Name+";"+s.Size+";"+s.DateCreated+";"+s.DateLastAccessed+";"+s.DateLastModified;
  • tab_Files[i] = a;
  • i++;
  • }
  • return tab_Files;
  • }
  • /* ----------------------------------------------------------------------------------
  • fonction : date2string
  • description : Permet de renvoyer une date DD/MM/YYYY HH:MM
  • entree : objet Date
  • sortie : string
  • ---------------------------------------------------------------------------------- */
  • function date2string (d) {
  • var str="";
  • var strDate, strMonth, strYear, strHours, strMinutes;
  • strDate = d.getDate();
  • strMonth = (Number(d.getMonth())+1);
  • strYear = d.getYear();
  • strHours = d.getHours();
  • strMinutes = d.getMinutes();
  • str += strDate <10? "0"+strDate +"/" : strDate+"/";
  • str += strMonth <10? "0"+strMonth +"/" : strMonth+"/";
  • str += strYear <10? "0"+strYear +" " : strYear+" ";
  • str += strHours <10? "0"+strHours +":" : strHours+":";
  • str += strMinutes<10? "0"+strMinutes+"" : strMinutes+"";
  • return str;
  • }
  • %>
  • <HTML>
  • <HEAD>
  • <link rel="stylesheet" type="text/css" href="../style_crue.css">
  • <STYLE>
  • .texteNoir10 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #000000}
  • .texteNoir12 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #000000}
  • .texteNoir10Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #000000; font-weight: bold}
  • .texteNoir12Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #000000; font-weight: bold}
  • .texteBleu10 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #11067c}
  • .texteBleu12 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #11067c}
  • .texteBleu10Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #11067c; font-weight: bold}
  • .texteBleu12Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #11067c; font-weight: bold}
  • .texteGris12 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #999999}
  • .texteGris12Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #999999; font-weight: bold}
  • .texteBlanc10 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #FFFFFF}
  • .texteBlanc12 { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #FFFFFF}
  • .texteBlanc10Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #FFFFFF; font-weight: bold}
  • .texteBlanc12Gras { font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #FFFFFF; font-weight: bold}
  • </STYLE>
  • </HEAD>
  • <BODY bgcolor="ffffff">
  • <div align="center">
  • <FORM METHOD="POST">
  • <TABLE cellspacing="0" cellpadding="0" border="0" width="800">
  • <TR>
  • <TD bgcolor="11067c" align="center" colspan="5"><font color="#999999" size="2" class="texteGris12Gras"><b>Liste des fichiers du dossier=></font><font color="#FFFFFF" size="2" class="texteBlanc12Gras"><%=cst_PathFiles%></font></TD>
  • </TR>
  • <TR>
  • <TD width="70" align="center"><input type="submit" name="btn_Del" value="delete"></TD>
  • <TD width="600" align="left"><font color="000000" size="1" class="texteNoir10Gras"><b>Nom</b></TD>
  • <TD width="50" align="right"><font color="000000" size="1" class="texteNoir10">Taille</TD>
  • <TD width="5">&nbsp;</TD>
  • <TD align="center" nowrap><font color="000000" size="1" class="texteNoir10">Date modification</TD>
  • </TR>
  • <%
  • var FileItem, FileSize, FileName;
  • var nbFileView=0;
  • for (i=0; i<tabFilesTrie.length; i++) {
  • if (tabFilesTrie[i]!="" && tabFilesTrie[i]!=null && tabFilesTrie[i]!="undefined") {
  • //-recup d'un element
  • FileItem = String(tabFilesTrie[i]).split(";");
  • //-recup du nom du fichier
  • FileName = FileItem[cstPath];
  • //-création de la taille du fichier
  • if (FileItem[cstSize]>(1024*1024)) {
  • FileSize = Math.ceil(((Number(FileItem[cstSize])/1024)/1024)) + " Mo";
  • }
  • else {
  • if (FileItem[cstSize]>1024) {
  • FileSize = Math.ceil((Number(FileItem[cstSize])/1024)) + " ko";
  • }
  • else {
  • FileSize = FileItem[cstSize] + " oc"
  • }
  • }
  • //-date de dernière modif
  • LastModif = date2string (new Date(FileItem[cstDateLastModified]));
  • Response.write (' <TR>\n');
  • Response.write (' <TD align=\"center\">');
  • if (cst_DELETE) {
  • Response.write ('<input type=\"checkbox\" name=\"chkFile' + i + '\" value=\"' + FileName + '\">');
  • }
  • else {
  • Response.write ('&nbsp;');
  • }
  • Response.write ('</TD>\n');
  • Response.write (' <TD bgcolor=\"#99cccc\" nowrap>');
  • if (cst_EDIT) {
  • Response.write ('<a href=\"readfile.asp?FILENAME='+FileItem[cstPath]+'\" target=\"_blank\">');
  • }
  • Response.write ('<font color=\"#11067c\" size="1" class=\"texteNoir10\">' + FileItem[cstName] + '</font>');
  • if (cst_EDIT) {
  • Response.write ('</a>');
  • }
  • Response.write ('</TD>\n');
  • Response.write (' <TD bgcolor=\"#99cccc\" align=\"right\">');
  • Response.write ('<font color=\"#000000\" size=\"1\" class=\"texteNoir10\">' + FileSize + '</font>');
  • Response.write ('</TD>\n');
  • Response.write (' <TD>&nbsp;</TD>');
  • Response.write (' <TD bgcolor=\"#ffffff\" align=\"right\" nowrap>');
  • Response.write ('<font color=\"#000000\" size=\"1\" class=\"texteNoir10\">' + LastModif + '</font>');
  • Response.write ('</TD>\n');
  • Response.write (' </TR>\n');
  • nbFileView++;
  • }
  • }
  • %>
  • <caption><input type="hidden" name="nbFile" value="<%=i%>"><font size="1" color="#000000">il y a <%=nbFileView%> fichiers dans le dossier</font></caption>
  • </TABLE>
  • </form>
  • </div>
  • </BODY>
  • </HTML>
  • <%
  • /* ***************************************************************************
  • *************** LE FICHIER readfile.asp ***************
  • *************************************************************************** */
  • %>
  • <%@ Language=JScript %>
  • <%
  • /* **************************************************************************
  • Cette page permet de lister les fichiers dans un repertoire
  • un maximum de cst_MaxFiles fichiers peuvent être listés.
  • **************************************************************************
  • language : Jscript (tester sur XP pro, jsript version 5)
  • **************************************************************************
  • Auteur : D.HIVERT (septembre 2003)
  • **************************************************************************
  • Parametres: (POST ou GET) /
  • --------------------------
  • => FILENAME= // indique le chemin et le nom du fichier
  • exemple d'utilisation : /
  • ------------------------
  • http://monserveur/monrep/readfile.asp?FILEMANE=c:\temp\monfichier.txt
  • Liste des fonctions de la page /
  • -------------------------------
  • getParam (_param, _default)
  • Replace (strOrg, strRec, strRep)
  • FileExist (FileName)
  • ReadFiles (FileName)
  • **************************************************************************
  • pages liées ou utilisées /
  • -------------------------
  • -
  • ************************************************************************** */
  • var FILENAME;
  • /* --------------------------------------------
  • recup des variables
  • -------------------------------------------- */
  • FILENAME = getParam ("FILENAME","");
  • /* --------------------------------------------
  • On verifie que l'on demande bien d'afficher
  • un fichier
  • -------------------------------------------- */
  • if (FILENAME==null || FILENAME=="") {
  • Response.write ("<br><center>Il n'y a pas de fichier indiqué</center>");
  • Response.end();
  • }
  • /* --------------------------------------------
  • Le fichier existe, on traite et on affiche
  • -------------------------------------------- */
  • if (FileExist (FILENAME)) {
  • strFile = ReadFiles (FILENAME);
  • strFile = Replace (strFile,'&', String.fromCharCode(38)+'amp;'); //remplace '&' par son code HTML
  • strFile = Replace (strFile,'<', String.fromCharCode(38)+'lt;'); //remplace '<' par son code HTML
  • strFile = Replace (strFile,'>', String.fromCharCode(38)+'gt;'); //remplace '>' par son code HTML
  • //affichage du fichier
  • Response.write ("<pre>Le fichier est: <b>"+FILENAME+"</b></pre>");
  • Response.write ("<pre>");
  • Response.write (strFile);
  • Response.write ("</pre>");
  • }
  • /* --------------------------------------------
  • Le fichier n'existe pas
  • -------------------------------------------- */
  • else {
  • Response.write ("<br><center>Il n'y a pas de fichier à l'endroit indiqué ( "+FILENAME+" )</center>");
  • Response.end();
  • }
  • /* ********************************************************************************** */
  • /* **********************LES FONCTIONS DE LA PAGE************************************ */
  • /* ********************************************************************************** */
  • /* ----------------------------------------------------------------------------------
  • Fonction : getParam
  • Description : récupère un paramètre (méthode GET ou POST)
  • Entrées : nom du paramètre, valeur par défaut
  • Sorties : chaine
  • ---------------------------------------------------------------------------------- */
  • function getParam(_param, _default) {
  • var r = new String;
  • //on recherche le paramétre dans les paramétres passé en GET
  • if (""+ Request.QueryString(_param) != 'undefined')
  • r = Request.QueryString(_param);
  • //on recherche le paramétre dans les paramétres passé en POST
  • if (""+ Request.Form(_param) != 'undefined')
  • r = Request.Form(_param);
  • //si on a pas de parametre, on retourne la valeur par defaut
  • if (r==null || r=='')
  • r = _default;
  • return r;
  • }
  • /* ----------------------------------------------------------------------------------
  • Fonction : Replace
  • Description : Permet de remplacer dans une chaine une ocurence par une autre
  • respecte la Casse
  • Entrées : chaine, chaine
  • Sorties : chaine
  • ---------------------------------------------------------------------------------- */
  • function Replace (strOrg, strRec, strRep) {
  • var tmp = "";
  • var re = new RegExp(strRec,"gm");
  • if (strOrg!=null)
  • {
  • tmp += strOrg;
  • tmp = tmp.replace(re,strRep);
  • }
  • return tmp;
  • }
  • /* ----------------------------------------------------------------------------------
  • Fonction : FileExist
  • Description : Vérifie l'existance d'un fichier
  • Entrées : nom du fichier
  • Sorties : true | false
  • ---------------------------------------------------------------------------------- */
  • function FileExist (FileName) {
  • var fso;
  • fso = new ActiveXObject("Scripting.FileSystemObject");
  • return fso.FileExists(FileName);
  • }
  • /* ----------------------------------------------------------------------------------
  • Fonction :
  • Description : Permet d'ecrire un fichier Texte ligne par ligne
  • Entrées : nom du fichier
  • Sorties : chaine (formatée)
  • ---------------------------------------------------------------------------------- */
  • function ReadFiles(FileName) {
  • var fso, ts, s;
  • var ForReading = 1;
  • var strFile="";
  • var nbLine=0;
  • var maxLineRead=1000; //indique le nombre de lignes max à traiter
  • fso = new ActiveXObject("Scripting.FileSystemObject");
  • // Lire le contenu du fichier.
  • ts = fso.OpenTextFile(FileName, ForReading);
  • while (!ts.AtEndOfStream && nbLine<maxLineRead) {
  • s = ts.ReadLine();
  • strFile += s + String.fromCharCode(13,10);
  • nbLine++;
  • }
  • ts.Close();
  • //-Depasse le nombre de ligne max (on l'indique en haut du document)
  • if (nbLine>=maxLineRead) {
  • strFile = "||ONLY "+maxLineRead+" FIRST LINE IS READ||"+ String.fromCharCode(13,10) + strFile;
  • }
  • return strFile;
  • }
  • %>
<%
/* ***************************************************************************
     *************** LE FICHIER         lstfile_log.asp                                 ***************
    *************************************************************************** */
%>

<%@ Language=JScript %>
<%
/* **************************************************************************
    Cette page permet de lister les fichiers dans un repertoire
    un maximum de cst_MaxFiles fichiers peuvent être listés.
    
   **************************************************************************
     language : Jscript (tester sur XP pro, jsript version 5)
   **************************************************************************
     Auteur   : D.HIVERT (septembre 2003)
   **************************************************************************
    
    Parametres: (POST ou GET) /
    --------------------------
    => PATH=		// indique le chemin reel du repertoire à lister
    => EDIT=        // indiwue si on pourra lire (methode texte) le fichier
    => DELETE=      // indique si on pourra supprimer le fichier depuis la page
    
    exemple d'utilisation : /
    ------------------------
    http://monserveur/monrep/lstfile_log.asp?PATH=c:\temp&DELETE=true&EDIT=false
    pour raffraichir la page appuyer sur le bouton 'delete'
    
    
    Liste des fonctions de la page /
    -------------------------------
    getParam     (_param, _default)
    DelFile      (myFile)
    FolderExist  (myFolder) 
    TriTableau   (LeTableau)
    listeFile    (l_s_Path)
    date2string  (d)
   

   **************************************************************************
     pages liées ou utilisées /
     -------------------------
      readfile.asp  => sert à lire un fichier en mode texte
   ************************************************************************** */

/* --------------------------------------------
     VARIABLES DE CONFIG DE LA PAGE
   -------------------------------------------- */
  var cst_PathFiles  = "";
  var cst_EDIT       = false;
  var cst_DELETE     = false;

/* --------------------------------------------
     Definition des constantes
   -------------------------------------------- */
 //pour l'objet File
  var cstPath = 0;
  var cstName = 1;
  var cstSize = 2;
  var cstDateCreated = 3;
  var cstDateLastAccessed = 4;
  var cstDateLastModified = 5;
 //Pour la page
  var cst_MaxFiles   = 1000;
  
/* --------------------------------------------
          recup des variables
  -------------------------------------------- */
  nbFile        = getParam("nbFile", "");
  btn_Del       = getParam("btn_Del", "");
  cst_PathFiles = getParam("PATH","")+"";
  cst_EDIT      = getParam("EDIT", "");
  cst_DELETE    = getParam("DELETE", "");
   
   
/* -------------------------------------------- 
       Verification d'execution de la page
   -------------------------------------------- */
 //-Si pas de chemin alors pas de recherche 
  if (cst_PathFiles=="" || cst_PathFiles==null) {
    Response.write ("<center>Il n'y a pas de chemin indiqué</center>");
    Response.end();
  }
 //-Peut on editer les fichiers 
  if (cst_EDIT=='true' || cst_EDIT=='TRUE' || cst_EDIT=='True') {
    cst_EDIT = true; 
  }
 //-Peut on supprimer les fichiers
  if (cst_DELETE=='true' || cst_DELETE=='TRUE' || cst_DELETE=='True') {
    cst_DELETE = true;
  } 
  
 /* --------------------------------------------
        Test la coherance de la chaine
    -------------------------------------------- */ 
  if ( String(cst_PathFiles.substr(cst_PathFiles.length-1,1))!=String("\\") ) {
     cst_PathFiles += "\\";
  }
  else {
  }

 /* --------------------------------------------
        On verifie que le chemin existe
    -------------------------------------------- */
    if (!FolderExist(cst_PathFiles)) {
      Response.write ("<center>Le repertoire <b>"+cst_PathFiles+"</b> n'existe pas </center>");
      Response.end();
    }
  
 /* --------------------------------------------
      permet de supprimer les fichiers 
    -------------------------------------------- */     
 if (btn_Del!="") {
    var myChk;
 
    for (i=0; i<nbFile; i++) {
      myChk = getParam("chkFile"+i,"");
      if (myChk!="") {
        DelFile (myChk);
      }
    }
 }

 /* --------------------------------------------
      recup des fichiers
    -------------------------------------------- */
   var tabFiles;
   var tabFilesTrie;
   
   tabFiles     = listeFile (cst_PathFiles);
   tabFilesTrie = TriTableau (tabFiles);
   


/* ********************************************************************************** */
/* **********************LES FONCTIONS DE LA PAGE************************************ */
/* ********************************************************************************** */

/* ----------------------------------------------------------------------------------
 Fonction    : getParam
 Description : récupère un paramètre (méthode GET ou POST)
 Entrées     : nom du paramètre, valeur par défaut
 Sorties     : chaine
  ---------------------------------------------------------------------------------- */
function getParam(_param, _default) {
  var r = new String;

 //on recherche le paramétre dans les paramétres passé en GET
  if (""+ Request.QueryString(_param) != 'undefined') 
    r = Request.QueryString(_param);

 //on recherche le paramétre dans les paramétres passé en POST
  if (""+ Request.Form(_param) != 'undefined') 
    r = Request.Form(_param);

 //si on a pas de parametre, on retourne la valeur par defaut   
  if (r==null || r=='')
    r =  _default;

  return r;
}

/* ----------------------------------------------------------------------------------
 fonction    : DelFile 
 description : Permet de supprimer un fichier du disk (si le repertoire le permet)
 entree      : nom du fichier
 sortie      : -
   ---------------------------------------------------------------------------------- */
function DelFile (myFile) {
  var Fs;
 try { 
  Fs=new ActiveXObject("Scripting.FileSystemObject");
  Fs.deleteFile (myFile+"");
 } catch (e){
     Response.write ("Le fichier "+myFile+" n'est pas effacé<br>");
   }
}

/* ----------------------------------------------------------------------------------
 fonction    : FolderExist 
 description : Permet de savoir si un repertoire existe 
 entree      : tableau à trier
 sortie      : -
   ---------------------------------------------------------------------------------- */
function FolderExist (myFolder) {
  var fso;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  return fso.FolderExists(myFolder);
}

/* ----------------------------------------------------------------------------------
 fonction    : TriTableau
 description : Permet renvoyer un tableau Trié issu du tableau transmis en paramétre 
 entree      : tableau à trier
 sortie      : -
   ---------------------------------------------------------------------------------- */
function TriTableau (LeTableau) {
  var Ligne_Tampon;
  var NewPasse;
  var tmpLeTableau, Max;

    Max = LeTableau.length;
    tmpLeTableau = new Array(Max);
    
    if (Max==null || Max=='undefined') return LeTableau;
    
    //-copie le tableau 
    for (i=0; i<Max; i++) {
      tmpLeTableau[i] = LeTableau[i];
    }

    NewPasse = "true";
    while (NewPasse!="false") {
       //-Chaque élément est comparé à celui qui lui est supérieur dans le classement
        NewPasse = "false";
        for (j=0; j<(Max-1); j++) {
          //-Test si J et plus grand que J+1
            if ( (tmpLeTableau[j]>tmpLeTableau[j + 1]) && tmpLeTableau[j]!=null && tmpLeTableau[j]!="") {
                Ligne_Tampon = tmpLeTableau[j];
                tmpLeTableau[j] = tmpLeTableau[j + 1];
                tmpLeTableau[j + 1] = Ligne_Tampon;
                NewPasse = "true";
            }
        }
    }
 return tmpLeTableau;
}

/* ----------------------------------------------------------------------------------
 fonction    : listeFile 
 description : Permet de trouver tous les fichiers d'un Repertoire
 entree      : chemin physique
 sortie      : tableau de String
 note        : Organisation des resultats
               Path;Name;Size;DateCreated;DateLastAccessed;DateLastModified
   ---------------------------------------------------------------------------------- */
function  listeFile (l_s_Path) {
  var i, s, re;
  var tab_Files = new Array (cst_MaxFiles);
  
    //-Definiton des variables
     var l_fs    //systeme de fichier
     var  i;
    
    //-Creation de la variable de Drives-- 
     l_fs = new ActiveXObject("Scripting.FileSystemObject");
     
    //-Creation de la colections de FILES
      l_folder = l_fs.getFolder(l_s_Path);
      l_files = new Enumerator(l_folder.files);
      
    //-Boucle sur tous les fichiers du répertoires (Extention)
      i = 0;
      s = new String("");
      for (; !l_files.atEnd() && i<cst_MaxFiles; l_files.moveNext()) {
        s = l_files.item();
        a = s.Path+";"+s.Name+";"+s.Size+";"+s.DateCreated+";"+s.DateLastAccessed+";"+s.DateLastModified;
  	    tab_Files[i] = a;
  	    i++;
      }
   return tab_Files;
}

/* ----------------------------------------------------------------------------------
  fonction    : date2string 
  description : Permet de renvoyer une date DD/MM/YYYY HH:MM
  entree      : objet Date
  sortie      : string
   ---------------------------------------------------------------------------------- */
function date2string (d) {
 var str="";
 var strDate, strMonth, strYear, strHours, strMinutes;
 
 strDate    = d.getDate();
 strMonth   = (Number(d.getMonth())+1);
 strYear    = d.getYear();
 strHours   = d.getHours();
 strMinutes = d.getMinutes();
 
 str +=  strDate  <10? "0"+strDate   +"/" : strDate+"/";
 str += strMonth  <10? "0"+strMonth  +"/" : strMonth+"/";
 str += strYear   <10? "0"+strYear   +" " : strYear+" ";
 str += strHours  <10? "0"+strHours  +":" : strHours+":";
 str += strMinutes<10? "0"+strMinutes+"" : strMinutes+"";
 
 return str;
}
%>
<HTML>
<HEAD>
<link rel="stylesheet" type="text/css" href="../style_crue.css">

<STYLE>
.texteNoir10 {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #000000}
.texteNoir12 {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #000000}
.texteNoir10Gras {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #000000; font-weight: bold}
.texteNoir12Gras {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #000000; font-weight: bold}

.texteBleu10 {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #11067c}
.texteBleu12 {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #11067c}
.texteBleu10Gras {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #11067c; font-weight: bold}
.texteBleu12Gras {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #11067c; font-weight: bold}

.texteGris12 {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #999999}
.texteGris12Gras {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #999999; font-weight: bold}

.texteBlanc10 {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #FFFFFF}
.texteBlanc12 {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #FFFFFF}
.texteBlanc10Gras {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 10px; color: #FFFFFF; font-weight: bold}
.texteBlanc12Gras {  font-family: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none; font-size: 12px; color: #FFFFFF; font-weight: bold}
</STYLE>

</HEAD>
<BODY bgcolor="ffffff">
<div align="center">
<FORM METHOD="POST">
<TABLE cellspacing="0" cellpadding="0" border="0" width="800">
 <TR>
   <TD bgcolor="11067c" align="center" colspan="5"><font color="#999999" size="2" class="texteGris12Gras"><b>Liste des fichiers du dossier=></font><font color="#FFFFFF" size="2" class="texteBlanc12Gras"><%=cst_PathFiles%></font></TD>
 </TR>
 <TR>
   <TD width="70" align="center"><input type="submit" name="btn_Del" value="delete"></TD>
   <TD width="600" align="left"><font color="000000" size="1" class="texteNoir10Gras"><b>Nom</b></TD>
   <TD width="50" align="right"><font color="000000" size="1" class="texteNoir10">Taille</TD>
   <TD width="5">&nbsp;</TD>
   <TD align="center" nowrap><font color="000000" size="1" class="texteNoir10">Date modification</TD>
 </TR>
 
<%
  var FileItem, FileSize, FileName;
  var nbFileView=0;
  for (i=0; i<tabFilesTrie.length; i++) {
     if (tabFilesTrie[i]!="" && tabFilesTrie[i]!=null && tabFilesTrie[i]!="undefined") {
     //-recup d'un element
      FileItem = String(tabFilesTrie[i]).split(";");


     //-recup du nom du fichier
       FileName = FileItem[cstPath];
     
     //-création de la taille du fichier 
      if (FileItem[cstSize]>(1024*1024)) {
        FileSize = Math.ceil(((Number(FileItem[cstSize])/1024)/1024)) + " Mo";
      }
      else {
        if (FileItem[cstSize]>1024) {
          FileSize = Math.ceil((Number(FileItem[cstSize])/1024)) + " ko";
        }
        else {
          FileSize = FileItem[cstSize] + " oc"
        }
      }
      
     //-date de dernière modif
      LastModif = date2string (new Date(FileItem[cstDateLastModified]));
     
      Response.write (' <TR>\n');
      Response.write ('  <TD align=\"center\">');
   if (cst_DELETE) {  
      Response.write ('<input type=\"checkbox\" name=\"chkFile' + i + '\" value=\"' + FileName + '\">');
   }
   else {
      Response.write ('&nbsp;');
   }   
      Response.write ('</TD>\n');
      Response.write ('  <TD bgcolor=\"#99cccc\" nowrap>');
   if (cst_EDIT) {   
      Response.write ('<a href=\"readfile.asp?FILENAME='+FileItem[cstPath]+'\" target=\"_blank\">');
   }   
      Response.write ('<font color=\"#11067c\" size="1" class=\"texteNoir10\">' + FileItem[cstName] + '</font>');
   if (cst_EDIT) {   
      Response.write ('</a>');
   }   
      Response.write ('</TD>\n');
      Response.write ('  <TD bgcolor=\"#99cccc\" align=\"right\">');
      Response.write ('<font color=\"#000000\" size=\"1\" class=\"texteNoir10\">' + FileSize  + '</font>');
      Response.write ('</TD>\n');
      Response.write ('  <TD>&nbsp;</TD>');
      Response.write ('  <TD bgcolor=\"#ffffff\" align=\"right\" nowrap>');
      Response.write ('<font color=\"#000000\" size=\"1\" class=\"texteNoir10\">' + LastModif  + '</font>');
      Response.write ('</TD>\n');
      Response.write (' </TR>\n');
    nbFileView++;  
  } 
}
%>
 
<caption><input type="hidden" name="nbFile" value="<%=i%>"><font size="1" color="#000000">il y a <%=nbFileView%> fichiers dans le dossier</font></caption>
</TABLE>
</form>
</div>
</BODY>
</HTML>




<%
/* ***************************************************************************
     *************** LE FICHIER        readfile.asp                                     ***************
    *************************************************************************** */
%>
<%@ Language=JScript %>
<%
/* **************************************************************************
    Cette page permet de lister les fichiers dans un repertoire
    un maximum de cst_MaxFiles fichiers peuvent être listés.
    
   **************************************************************************
     language : Jscript (tester sur XP pro, jsript version 5)
   **************************************************************************
     Auteur   : D.HIVERT (septembre 2003)
   **************************************************************************

    Parametres: (POST ou GET) /
    --------------------------
    => FILENAME=      // indique le chemin et le nom du fichier
    
    exemple d'utilisation : /
    ------------------------
    http://monserveur/monrep/readfile.asp?FILEMANE=c:\temp\monfichier.txt
   
    Liste des fonctions de la page /
    -------------------------------
    getParam    (_param, _default)
    Replace     (strOrg, strRec, strRep)
    FileExist   (FileName)
    ReadFiles   (FileName)
   
   **************************************************************************
     pages liées ou utilisées /
     -------------------------
      -
   ************************************************************************** */

  var FILENAME;
  
/* --------------------------------------------
          recup des variables
  -------------------------------------------- */
   FILENAME = getParam ("FILENAME","");
   
/* --------------------------------------------
    On verifie que l'on demande bien d'afficher 
     un fichier
  -------------------------------------------- */
   if (FILENAME==null || FILENAME=="") {
      Response.write ("<br><center>Il n'y a pas de fichier indiqué</center>");
      Response.end();
   }
     
/* --------------------------------------------
    Le fichier existe, on traite et on affiche    
  -------------------------------------------- */
   if (FileExist (FILENAME)) {
     strFile = ReadFiles (FILENAME);

     strFile = Replace (strFile,'&', String.fromCharCode(38)+'amp;');			//remplace '&' par son code HTML
     strFile = Replace (strFile,'<', String.fromCharCode(38)+'lt;');			//remplace '<' par son code HTML
     strFile = Replace (strFile,'>', String.fromCharCode(38)+'gt;');			//remplace '>' par son code HTML

     //affichage du fichier
     Response.write ("<pre>Le fichier est: <b>"+FILENAME+"</b></pre>");
     Response.write ("<pre>");
     Response.write (strFile);
     Response.write ("</pre>");
   }
/* --------------------------------------------
    Le fichier n'existe pas  
  -------------------------------------------- */
   else {
      Response.write ("<br><center>Il n'y a pas de fichier à l'endroit indiqué ( "+FILENAME+" )</center>");
      Response.end();
   }
   

/* ********************************************************************************** */
/* **********************LES FONCTIONS DE LA PAGE************************************ */
/* ********************************************************************************** */

/* ----------------------------------------------------------------------------------
 Fonction    : getParam
 Description : récupère un paramètre (méthode GET ou POST)
 Entrées     : nom du paramètre, valeur par défaut
 Sorties     : chaine
  ---------------------------------------------------------------------------------- */
function getParam(_param, _default) {
  var r = new String;

 //on recherche le paramétre dans les paramétres passé en GET
  if (""+ Request.QueryString(_param) != 'undefined') 
    r = Request.QueryString(_param);

 //on recherche le paramétre dans les paramétres passé en POST
  if (""+ Request.Form(_param) != 'undefined') 
    r = Request.Form(_param);

 //si on a pas de parametre, on retourne la valeur par defaut   
  if (r==null || r=='')
    r =  _default;

  return r;
}

/* ---------------------------------------------------------------------------------- 
 Fonction    : Replace 
 Description : Permet de remplacer dans une chaine une ocurence par une autre
               respecte la Casse
 Entrées     : chaine, chaine
 Sorties     : chaine
 ---------------------------------------------------------------------------------- */
function Replace (strOrg, strRec, strRep) {
 var tmp = "";
 var re = new RegExp(strRec,"gm");
 
    if (strOrg!=null)
    {
      tmp += strOrg;
      tmp = tmp.replace(re,strRep);
    }  
      
  return tmp;
}

/* ----------------------------------------------------------------------------------
  Fonction    : FileExist 
  Description : Vérifie l'existance d'un fichier
  Entrées     : nom du fichier
  Sorties     : true | false
   ---------------------------------------------------------------------------------- */
function FileExist (FileName) {
  var fso;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  return fso.FileExists(FileName);
}

/* ----------------------------------------------------------------------------------
  Fonction    :
  Description : Permet d'ecrire un fichier Texte ligne par ligne
  Entrées     : nom du fichier
  Sorties     : chaine (formatée)
   ---------------------------------------------------------------------------------- */
function ReadFiles(FileName) {
   var fso, ts, s;
   var ForReading = 1;
   var strFile="";
   var nbLine=0;
   var maxLineRead=1000;      //indique le nombre de lignes max à traiter
   
   fso = new ActiveXObject("Scripting.FileSystemObject");

   // Lire le contenu du fichier.
   ts = fso.OpenTextFile(FileName, ForReading);
   while (!ts.AtEndOfStream && nbLine<maxLineRead) {
     s = ts.ReadLine();
     strFile += s + String.fromCharCode(13,10);
     nbLine++;
   }
   ts.Close();

  //-Depasse le nombre de ligne max (on l'indique en haut du document)
   if (nbLine>=maxLineRead) {
     strFile = "||ONLY "+maxLineRead+" FIRST LINE IS READ||"+ String.fromCharCode(13,10) + strFile;
   }  

   return strFile;
}
%>

 Conclusion

Voila.
J'espere avoir ete clair.

Petite note de fin de page :
Si vous voulez effacer un fichier via cette page et que ce fichier est 'resistant', verifiez que
votre utilisateur Internet a les droits d'effacer dans le repertoire.

Salutation.  

Une petite Erreur est survenue dans les fichiers compressees, lisez le code pour faire la
correction pour la suppresion des fichiers.


 Sources de la même categorie

LIST DIRECTORY WITH SPECIFIED EXTENSION & LINK par Syruis
Source avec une capture EXPLORATEUR ASP EN UN SEUL FICHIER SANS INSTALLATION par informatika2001
LISTING ET SUPPRESSION DE FICHIER par Jackboy
DÉCOUPER UNE CHAINE DE CARACTÈRE par bambina100
Source .NET (Dotnet) ASP.NET - CHARGER TOUS LES SOUS-RÉPERTOIRES DANS UN DATATABL... par fabrice69

Commentaires et avis

Commentaire de Jackboy le 18/08/2004 21:31:11

ouin ben plein d'erreur !! peut etre faire de beau ficher et un zip fonctionnel sa serai bien, mais pour l'instant erreur javascript...

Commentaire de Bidossessi le 20/05/2008 11:40:03

Bonjour
Moi j'ai une recupération de données à faire dans un fichier de type txt mais avec mon script j'ai que des erreurs voilà le script:

<% If Request.Form("domain")<>""then %>

<b><%=Request.Form("domain")%></b>
<br><br>

<% champ1=Request.Form("champ1")
if champ1<>""then%>
<b><%=champ1%></b>
<br><br>
<% end if%>
<% champ1=champ1 & "" & Request.Form("domain")
end if%>

<% If Request.Form("user")<>""then %>
Votre champ contenait
<b><%=Request.Form("user")%></b>
<br><br>

<% champ1=Request.Form("champ1")
if champ1<>""then%>
<b><%=champ1%></b>
<br><br>
<% end if
champ1=champ1 & "" & Request.Form("user")
end if%>

<% If Request.Form("password")<>""then %>
Votre champ contenait
<b><%=Request.Form("password")%></b>
<br><br>

<% champ1=Request.Form("champ1")
if champ1<>""then%>
<b><%=champ1%></b>
<br><br>
<% end if
champ1=champ1 & "" & Request.Form("password")
end if%>

<% If Request.Form("cluster")<>""then %>
Votre champ contenait
<b><%=Request.Form("cluster")%></b>
<br><br>

<% champ1=Request.Form("champ1")
if champ1<>""then%>
<b><%=champ1%></b>
<br><br>
<% end if
champ1=champ1 & "" & Request.Form("cluster")
end if%>

<% If Request.Form("application")<>""then %>
Votre champ contenait
<b><%=Request.Form("application")%></b>
<br><br>

<% champ1=Request.Form("champ1")
if champ1<>""then%>
<b><%=champ1%></b>
<br><br>
<% end if
champ1=champ1 & "" & Request.Form("application")
end if%>

<% If Request.Form("account")<>""then %>
<b><%=Request.Form("account")%></b>
<br><br>

et voilà l'erreur qui s'affiche:
Erreur de compilation Microsoft VBScript error '800a0401'
Fin d'instruction attendue
/iisHelp/common/500-100.asp, line 11
Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
Erreur de compilation Microsoft VBScript error '800a03f9'
'Then' attendu
/carto/moteur.asp, line 104
if arrPaco[0]="ReportLabel" then
----------^

 Ajouter un commentaire




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 : 0,546 sec (4)

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