OnDirListed zeige Datei (VBS)

zaP

bekommt Übersicht
Naja, wusste nicht genau wie ich das topic nennen soll ;)

Also, ich habe in manchen ordnern z.b. eine Datei namens .racestats
Diese enthält ganz normalen text. Wenn ein User einen Ordner der solch eine Datei enthält betritt, soll er ihn als 250 text in seinem ftp-client erhalten. Sowas ist doch sicher über .vbs
möglich oder?


Beispiel:
Code:
.-----------------------------[Race]------------------------------. 
| Files | User         | Size       | Avg Speed    | Max Speed    | 
|=======+==============+============+==============+==============| 
|     1 | zap          |   14.30 MB |  2929.0 KB/s |  2929.0 KB/s | 
:=======+==============+============+==============+==============:
Das steht in der .racestats Datei, und soll beim betreten des jeweiligen
Ordners im Client zu sehen sein.
 
Zuletzt bearbeitet:
Danke MaXg ;)

Also auf Seite 49 find ich nur den OnDirListed Event, der is zwar
sicher nützlich dafür, bringt mir aber alleine nix. Naja, habe jemanden
gefunden der das für mich als .vbs gemacht hat :)

MessageOnDirChange.vbs
Code:
Option Explicit
'
'  Made by IceMan @ [email]tbm_iceman@hotmail.com[/email]
'  
'  Requested by: zaP
'
'  Version: G6FTPServer(3.4.0.16)
'
'  Usage:
'    Change the MsgFileName to your filename.
'    When you enter a directory where that file is,
'    the ftpserver writes the file content to the client.


Const MsgFileName = ".racestats"

'*************************************************************************
'**** DO NOT EDIT BELOW **** DO NOT EDIT BELOW **** DO NOT EDIT BELOW ****
'*************************************************************************
'**** DO NOT EDIT BELOW **** DO NOT EDIT BELOW **** DO NOT EDIT BELOW ****
'*************************************************************************

Sub OnDirListed()
  Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
  
  If FSO.FileExists(Client.DirectoryReal & "\" & MsgFileName) Then
    Call PrintFile(Client.DirectoryReal & "\" & MsgFileName)
  End If
End Sub


Sub PrintFile(FilePath)
  Dim FSO, File, FileStream, ReadAllTextFile
  Const OpenFileForReading = 1 

  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set File = FSO.OpenTextFile(FilePath, OpenFileForReading)

  ReadAllTextFile =  File.ReadAll

  Client.Send 220, vbCrLf & ReadAllTextFile & vbCrLf & vbCrLf

  FileStream.Close  
End Sub
 
Sorry, mein Fehler. hab immer OnDirectoryChanged gelesen. :ROFLMAO:

Ich meinte den hier ->

changedir.gif


zu finden in den Usereinstellungen.
 
Ach den, ja. Nur is das nicht das was ich wollte :)

Hmm, ok, stell dir vor, du hast auf deinem ftp in manchen ordner eine .racestats datei (die enthält z.b. wer den inhalt des ordners wie schnell hochgeladen hat). Die .racestats gibts aber nicht überall. Nur in manchen ordnern. Und natürlich steht auch immer was anderes drin. Bringt also nichts die als DirChange anzugeben, würde ja dann bei jedem DirChange angezeigt werden,
egal was in der .racestats des aktuellen Dirs drinsteht.

Hoffe ich konnte das irgendwie in verständliche Worte fassen ;)
 
Verständlich ja.

Ich würde da einfach ".racestats" reintippen.

Ist keine im Ordner, kommt nix.

Ist eine drin, wird der inhalt der .racestats, die in diesem Ordner liegt, gezeigt usw...
 
Zuletzt bearbeitet:
Hmmm, gar nicht so doof die Idee :)

Problematisch wirds aber wenn man eine DirChange Datei haben
will für alle Ordner, die also immer angezeigt wird (Mit Ratio/Freespace/usw),
oder man das für mehrer User haben will, das .vbs kann man ja einfach
für die komplette Domain oder eine Gruppe laden.

Naja, wie auch immer, ich denke mal Problem gelöst, alle glücklich :)
 
Oben