Frage

Ich habe ein Programm, dass die Kontrollen in regelmäßigen Abständen für neue Dateien und sie dann verarbeiten.

Weil ich sicher sein will, dass die Datei über FTP wird nicht kopiert, verschiebe ich die Datei zuerst.
Das Merkwürdige ist, dass in Windows Server 2008 die Datei verschoben wird, auch wenn das kopiert wird, und die FTP-Kopiervorgang endet in der neuen Position.

Wie kann das möglich sein?

Ich habe das Problem Verwendung dieser einfachen Codezeilen in einer vbs-Datei getestet:

dim fso
set fso = createobject("Scripting.FileSystemObject")
fso.MoveFile "bigfile.zip", "moved\bigfile.zip"
War es hilfreich?

Lösung

Nun, wenn Sie eine Datei (in dem gleichen Laufwerk) bewegen, sind Sie nur das Dateisystem, dass die Datei irgendwo anders gefunden werden kann, sind Sie nicht wirklich irgendwelche Daten bewegen. Also ich würde vermuten, dass die Bewegung voran geht und sagt dem Dateisystem, wo die Datei nun gefunden werden kann, aber der FTP-Betrieb hat bereits Platz auf der Festplatte für die eigentlichen Daten zugeordnet und so die Tatsache, dass die Datei verschoben wurde, won‘ t beeinflussen, wo die Daten in irgendeiner Weise gespeichert sind, und so alles funktioniert.

Wenn Sie die Datei auf ein anderes Laufwerk verschoben ich, dass etwas annehmen würde würde irgendwo brechen.

Wenn Sie Zugriff auf den Client haben, können Sie den Client schreiben eine andere winzige Datei anschließend mit dem Namen bigfile.zip.complete oder ähnlich, und der Server-App für das vor dem Beginn der Verarbeitung warten konnte, auf diese Weise können Sie sicher sein würde, dass es ist fertig Kopieren (dies würde für den Fall, auch Arbeit der Verbindung nach unten durch halb geht und der Client stoppt die Datei hochgeladen, obwohl es nicht fertig ist).

Oder wenn Sie Zugriff haben, nicht an den Client, vielleicht könnten versuchen Sie auf die Größe der Datei suchen, wenn es in so viele Sekunden oder Minuten nicht geändert hat, dann ist es hoffentlich beendet.

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