Il s'agit d'un navigateur de fichiers FSO écrit à l'aide d'objets de collection FSO (si vous insistez pour dire qu'il s'agit d'un cheval de Troie, je n'ai aucune objection sur le plan fonctionnel, il imite le design du "Top Trojan of the Ocean", mais le code est complètement réécrit). . Utilisation de composants tels que Shell.Application qui peuvent facilement provoquer une destruction accidentelle par un logiciel antivirus. Il existe de nombreux outils similaires sur Internet. La valeur d'usage de cet outil n'est pas très grande, mais de nombreux codes qu'il contient sont considérés comme bien écrits.
Les principales fonctionnalités incluent : Affichez les informations sur le disque, parcourez les fichiers du disque et effectuez des opérations similaires à celles de l'Explorateur Windows, telles que la création, la suppression, le renommage, la copie, le déplacement et d'autres opérations de base sur les fichiers texte.
Le téléchargement de fichiers en mode flux simplifie et optimise le packaging/déballage de fichiers de téléchargement sans composants. Un dossier peut être complètement packagé/décompressé.
Extrait de code :
1. Classer la pièce d'emballage/déballage
Sous- pack ( ByVal FPath, ByVal sDbPath) Serveur.ScriptTimeOut=900 Faible DbPath Si c'est vrai(sDbPath,4)= ".mdb" Alors CheminDb=sCheminDb Autre DbPath=sDbPath ".mdb" Fin Si Si oFso.FolderExists (DbPath) Alors EchoBack "Impossible de créer le fichier de base de données !" &Replace(DbPath, ""," \") Sortie Sous Fin Si Si oFso.FileExists(DbPath) Alors oFso.DeleteFile DbPath Fin Si Si IsFolder (FPath) Alors RootPath=GetParentFolder(FPath) Si Right(RootPath,1)<> "" Then RootPath=RootPath&" " Autre EchoBack "Veuillez entrer le chemin du dossier !" Sortie Sous Fin Si Dim oCatalog, connStr, DataName Définir conn=Server.CreateObject( "ADODB.Connection" ) Définir oStream=Server.CreateObject( "ADODB.Stream" ) Définir oCatalog=Server.CreateObject( "ADOX.Catalog" ) Définir rs=Server.CreateObject( "ADODB.RecordSet" ) Sur Erreur CV Suivant connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Source de données=" & DbPath oCatalog.Créer connStr Si erreur alors EchoBack "Impossible de créer le fichier de base de données !" &Replace(DbPath, ""," \") Sortie Sous Fin Si Définir oCatalog = Rien conn.Ouvrir connStr conn.Execute( "Créer des fichiers de table (ID int IDENTITY (0,1) PRIMARY KEY CLUSTERED, FilePath VarChar, FileData Image)" ) oStream.Ouvrir oStream.Type=1 rs.Ouvrez "Fichiers" , conn, 3,3 DataName=Gauche(oFso.GetFile(DbPath).Name,InstrRev(oFso.GetFile(DbPath).Name, "." )-1) NoPackFiles=Remplacer(NoPackFiles, "<$datafile>" , DataName) FailFileList = "" PackFolderFPath Si FailFilelist = "" Alors EchoClose "Emballage du dossier réussi !" Autre Response.Write " " Response.Write "" Response.Write "" &Replace(FailFilelist, "|" , " " ) "" Fin Si oStream.Fermer rs.Fermer conn.Fermer Fin Sous Sous- PackFolder (FolderPath) Si Pas IsFolder (FolderPath) alors Sortie Sous Dim oDossier, sFichier, sDossier Définir oFolder=oFso.GetFolder(FolderPath) Pour Chaque sFile dans oFolder.Files Si InStr(NoPackFiles, "|" &sFile.Name "|" )<1 Alors PackFile sFile.Path Fin Si Suivant Définir sFile = Rien Pour Chaque sFolder dans oFolder.SubFolders PackFolder sFolder.Path Suivant Définir sFolder = Rien Fin Sous Sous -packFichier (Chemin du fichier) Dim RelPath RelPath=Remplacer(FilePath,RootPath, "" ) Sur Erreur CV Suivant Err.Effacer Err = Faux oStream.LoadFromFile Chemin du fichier rs.AddNew rs( "CheminFichier" )=CheminRel rs( "FileData" )=oStream.Read() rs.Mise à jour Si erreur alors FailFilelist=FailFilelist&FilePath "|" Fin Si Fin Sous Sous- décompression (vFolderPath, DbPath) Serveur.ScriptTimeOut=900 Dim FilePath, FolderPath, sFolderPath FolderPath=vFolderPath Chemin du dossier = Couper (Chemin du dossier) Si Mid(FolderPath,2,1)<> ":" Alors EchoBack "Le format du chemin est incorrect et le répertoire ne peut pas être créé !" Sortie Sous Fin Si Si c'est vrai(FolderPath,1)= "" Puis FolderPath=Left(FolderPath,Len(FolderPath)-1) Dim connStr Définir conn=Server.CreateObject( "ADODB.Connection" ) Définir oStream=Server.CreateObject( "ADODB.Stream" ) Définir rs=Server.CreateObject( "ADODB.RecordSet" ) connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Source de données=" & DbPath Sur Erreur CV Suivant Err = Faux conn.Ouvrir connStr Si erreur alors EchoBack "Erreur d'ouverture de la base de données !" Sortie Sous Fin Si Err = Faux oStream.Ouvrir oStream.Type=1 rs.Ouvrez "Fichiers" , conn, 1,1 FailFilelist = "" Faire Jusqu'à rs.EOF Err.Effacer Err = Faux FilePath=Chemin du dossier ""&rs(" FilePath") FilePath=Remplacer(FilePath, "\"," ") sFolderPath=Gauche(FilePath,InStrRev(FilePath, "" )) Si Pas oFso.FolderExists(sFolderPath) Alors Créer un dossier (sFolderPath) Fin Si oStream.SetEos() oStream.Write rs( "FileData" ) oStream.SaveToFile FilePath,2 Si erreur alors FailFilelist=FailFilelist&rs( "FilePath" ).Valeur "|" Fin Si rs.MoveNext Boucle rs.Fermer Définir rs = Rien conn.Fermer Définir conn= Rien Définir oStream = Rien Si FailFilelist = "" Alors EchoClose "Déballage du fichier réussi !" Autre Response.Write " " Response.Write "" Response.Write "" &Replace(FailFilelist, "|" , " " ) "" Fin Si Fin Sous
2. Partie téléchargement de fichier (fichier unique) :
Saveupload ( ByVal FolderName) Si Not IsFolder(FolderName) Then EchoClose "Aucun dossier de téléchargement spécifié !" Sortie Sous Fin Si Dim Path, IsOverWrite Path=FolderName Si Right(Path,1)<> "" Then Path=Path&" " FileName=Replace(Request( "filename" ), ""," ") Si Len(FileName)<1 Then EchoBack "Veuillez sélectionner le fichier et saisir le nom du fichier !" Sortie Sous Fin Si Chemin=Chemin Si LCase(Request( "overwrite" ))= "true" Alors IsOverWrite = True Sinon IsOverWrite = False Fin Si Sur Erreur CV Suivant Appeler MyUpload (Chemin, IsOverWrite) If Err Then EchoBack "Le téléchargement du fichier a échoué ! (Le fichier existe peut-être déjà)" Else EchoClose "Fichier téléchargé avec succès !n" & Remplacer(fileName, "", " \") Fin Si fin sous -fichier Sub MyUpload(FilePath,IsOverWrite) Dim oStream, tStream, FileName, sData, sSpace, sInfo, iSpaceEnd, iInfoStart, iInfoEnd, iFileStart, iFileEnd, iFileSize, RequestSize, bCrLf RequestSize=Request.TotalBytes Si RequestSize <1 alors Sortie Sous Définir oStream=Server.CreateObject( "ADODB.Stream" ) Définir le tStream=Server.CreateObject( "ADODB.Stream" ) Avec oStream .Type=1 .Mode=3 .Open .Write=Request.BinaryRead(RequestSize) .Position=0 sData=.Read bCrLf=ChrB(13)&ChrB(10) iSpaceEnd=InStrB(sData,bCrLf)-1 sSpace =LeftB(sData,iSpaceEnd) iInfoStart=iSpaceEnd+3 iInfoEnd=InStrB(iInfoStart,sData,bCrLf&bCrLf)-1 iFileStart=iInfoEnd+5 iFileEnd=InStrB(iFileStart,sData,sSpace)-3 sData= "" iFileSize=iFileEnd-iFileStart+1 tStream.Type=1 tStream.Mode=3 tStream.Open .Position=iFileStart-1 .CopyTo tStream,iFileSize Si IsOverWrite Alors tStream.SaveToFile FilePath,2 Sinon tStream.SaveToFile FilePath Fin Si tStream.Close .Close Fin Avec SettStream = Rien Définir oStream = Rien de fin Sous