Frage

Bedingungen:

  • Windows 98 SE
  • WMI nicht verfügbar

Ich habe Code, der so aussieht, geschrieben MSScript mit meinem steroidale Umwickeln von VBScript verwenden.

do
    a = files.collectfiles( "c:\userver", "" )
    for i = 0 to ubound( a )
        f = a(i)
        if strings.endswith( f, ".usv" ) then
            d = files.readfilee( f )
            on error resume next
            executeglobal d
            nErr = err.number
            sErr = err.description
            on error goto 0
            if nErr <> 0 then
                trace "*** Error " & nErr & ", " & sErr
            end if
            files.deletefile f
        end if
    next
    system.sleep 10
    system.cooperate
loop

Es gibt eine Menge von Plattenaktivität mit diesem Aufruf an files.collectfiles. Gibt es irgendeine Art und Weise eine Änderung in den Inhalt eines Ordners des Erfassens, ohne tatsächlich Scannen der Ordner für Dateien?

War es hilfreich?

Lösung

Define "Änderung der Inhalt eines Ordners".

Wenn es bedeutet, dass eine Datei hinzugefügt, gelöscht oder umbenannt, wird der modifizierte Zeitstempel des Ordners aktualisiert wird, wenn ein solches Ereignis eintritt.

Wenn Sie stattdessen wissen wollen, wenn Dateien geändert werden, dann müssen Sie sie lesen.

Das heißt, schauen, was Sie versuchen, (Scan einen Ordner für neue .usv Dateien und verarbeiten sie und löschen Sie sie) zu tun, dann der Zeitstempel nur die Verfolgung auf den Ordner und aktualisieren es richtig, bevor Sie anrufen collectfiles ist am besten (beachten Sie, dass die richtige Zeit ist, melden Sie sich einfach collectfiles vor dem Aufruf, sonst laufen Sie Gefahr, nicht aufwachen laufen, wenn eine Datei hinzugefügt wird während der collectfiles anrufen oder unmittelbar danach).

Andere Tipps

Es ist eine Probe, die bis zu bei leas WinXP auf allen Versionen von Windows 95 arbeiten behauptet. Entwickelt unter Win98 mit VB5. Mit den (dann? Ausgebrachten Links auf die Doku unten) nicht dokumentiert SHChangeNotify * Funktionen.

SHChangeNotifyRegister: Receive Shell Change Notifications

SHChangeNotifyRegister Funktion SHChangeNotifyDeregister Funktion

Es gibt eine andere Lösung mit ReadDirectoryChangesW hier:

VB6 WinAPI ReadDirectoryChangesW (überprüfe den fünften Beitrag von Yang Kok Wah)

Sie speziell für etwas in VB und läuft auf Win98 gefragt und ich habe keine Antwort für diese, aber MS hat ac / win32 Beispiel dafür, wie diese mit FindFirstChangeNotification . Eine andere Sache ist, dass scheinbar " Filesystemwatcher “in .NET funktioniert nicht / auf Win98 unterstützt. Was ist mein Punkt? Es gibt vielleicht keine einfache Lösung für dieses und Sie müssen sich etwas einfallen lassen auf eigene Faust.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top