Frage

Ich habe ASP.NET-Intranet-Anwendung in VB geschrieben.Es erhält eine Datei vom Benutzer, und abhängig von einigen verschiedenen Fällen kann er einige Kopien der Datei erstellen sowie das Original verschieben.

Ich bin leider auf einen Fall, in dem ich diesen Fehler habe:

generasacodicetagpre.

das durch den generationspflichten geworfen wird.Und das ist in Ordnung, dass es von einem anderen Prozess verwendet wird - es kann immer noch vom Benutzer sparen oder heruntergeladen werden, oder versucht, zu kopieren, während ein anderer Thread (?) Kopierer kopiert, ich interessiere mich nicht wirklich dafür, was ich wissen möchte:

Gibt es so, dass ich VB sagen kann, um zu warten, um zu warten (verschieben) die Datei, bis die Datei nicht mehr verwendet wird?

danke

War es hilfreich?

Lösung

testen, wenn die Datei verwendet wird und das tun, was Sie tun müssen.

Public Sub WritelogFile (BYVAL PTEXT als Zeichenfolge, Byval Pspath als Zeichenfolge, Byval-PSName als Zeichenfolge)

generasacodicetagpre.

ende sub Öffentliche Funktion CheckiffileInsUnuse (BYVAL SFile als String) als Boolean Wenn system.io.file.exists (SFile) dann Versuchen Dim f als kurz= freefile () FileOpen (F, SFile, OpenMode.Append, OpenAccess.write, openShare.shared) Fileclose (f) Fang True zurückgeben Endversuch. Ende, wenn Endfunktion

Andere Tipps

hmm ... nicht direkt. Was die meisten Implementierungen tun, ergeben eine Wiederholung des Kopierens der Datei mit einem kleinen Zeitrahmen (einige Sekunden)

Wenn Sie eine schöne Benutzeroberfläche erstellen möchten, überprüfen Sie über AJAX, wenn der Kopiervorgang gut geliefert wird.

Nun, es stellt sich heraus, dass das Warten in diesem Fall nicht funktioniert:

Wenn Sie versuchen, eine Datei zu kopieren, können Sie eine Datei nicht von einem Speicherort an denselben Ort kopieren oder einen Fehler (anscheinend) werfen.Anstatt nur vorzugeben, die Datei zu kopieren

whoops!

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