En supposant que j'ai une structure de dossiers comme:DirectoryInfo.Delete (Vrai) ne supprime pas lorsque la structure du dossier est ouvert dans l'Explorateur Windows
C:\MyTemp - MySubFolder
Si je tente de supprimer cela en utilisant:
Dim path As String = "C:\MyTemp"
Dim di As System.IO.DirectoryInfo
di = System.IO.Directory.CreateDirectory(path)
di.CreateSubdirectory("MySubFolder")
di.Delete(True)
Cela fonctionne très bien, sauf si j'ai Windows Explorer ouvert et je regarde le répertoire 'MySubFolder'. Ensuite, je reçois une IOException Le répertoire n'est pas vide. - le fait de cliquer sur OK le supprime et la structure du dossier n'est pas supprimée.
Y a-t-il des réflexions sur la façon dont je peux obtenir ce résultat correctement (c'est-à-dire supprimer), même lors de l'exécution de ce code alors que la structure du dossier est ouverte dans Windows Explorer?
Notez qu'il s'agit d'un comportement standard du shell. Vous obtiendrez le même message d'erreur de 'rmdir/S'. Je suppose que la suppression échoue fondamentalement car Explorer a toujours un handle pour le sous-dossier ouvert. –
@ 0xA3 - Ce n'est pas cohérent. Voir mon commentaire sur la réponse ci-dessous. Il y a des cas où je peux supprimer un dossier tout en le regardant dans l'Explorateur de Windows et qu'Explorer juste navs au dossier parent de l'enfant qui a été supprimé. –
@ToddMain Je sais que c'est vieux mais j'apprécierai vraiment si vous pouvez poster la solution pour ceci. –