Directory.Exists hält das Verzeichnishandle für einige Sekunden

9

Also versuche ich Unit-Test / Integrationstest meinen Code für die Freigabe eines Verzeichnisses verantwortlich zu machen.

Also erstelle ich mein Share-Laufwerk und überprüfe dann, ob das Verzeichnis existiert. Zuerst lokal und dann über den Freigabenamen.

%Vor%

Danach möchte ich natürlich nach mir selbst aufräumen, indem ich das gerade erstellte Verzeichnis entferne. Dies funktioniert jedoch nicht, weil "... es von einem anderen Prozess verwendet wird."

Nach ein paar Experimenten habe ich festgestellt, dass, wenn ich meine zweite Assert entferne, es wieder funktioniert. Mache ich etwas falsch? Oh, und ich habe auch bemerkt, dass es auch funktioniert, wenn ich vor dem Entfernen des Verzeichnisses 30 Sekunden schlafen lasse. Wtf?

BEARBEITEN: Ich habe gerade dieses Problem noch einmal besprochen und versucht, wie die Leute in den Kommentaren vorgeschlagen haben, den Ordner explizit zuerst freizugeben. Das war's. Arbeitete wie ein Charme.

    
jimmy 23.03.2015, 17:06
quelle

1 Antwort

2

Wie von @DWright gefordert, werde ich meine eigene Frage beantworten, da niemand sonst dies getan hat, zu Dokumentationszwecken und zur Klarheit, wenn andere Leute diesen Beitrag finden.

Mein Problem wurde dadurch gelöst, dass der Ordner explizit freigegeben wurde, bevor er entfernt wurde:

%Vor%     
jimmy 16.04.2015, 06:34
quelle

Tags und Links