Dans mon application, j'essaie de renommer le dossier, mais si le dossier est ouvert dans Windows Explorer, je reçois un IOException
. Comment puis-je identifier si le dossier est ouvert dans Windows Explorer en C#?Comment identifier si le dossier est ouvert?
Répondre
attraper l'IOException? Comme d'autres l'ont dit, essayez de faire ce que vous voulez, attrapez l'exception si cela se produit et prenez les mesures appropriées, peu importe ce qui se passe dans votre contexte.
Vous n'avez pas vraiment le choix que je le vois, considérez:
bool iHaveAccess = CheckAccess(folder);
if (iHaveAccess)
{
RenameFolder(folder,newFolderName);
}
ce qui se passe si entre CheckAccess réussir et appeler RenameFolder quelque chose d'autre verrouille le dossier? Que va-t-il faire alors?
Ouais, voici comment je m'y prendrais. Vous devriez probablement surveiller cela de toute façon. – Toji
Il n'est pas raisonnable de déterminer si un dossier est ouvert dans un programme de manière à vous empêcher de le renommer. Parce que immédiatement après avoir fait la détermination, un autre processus pourrait commencer ou arrêter d'utiliser le dossier. Au lieu de faire l'opération et attraper l'exception qui en résulte.
try {
Directory.Move("old","new");
return true;
} catch (IOException) {
return false;
}
- 1. Comment vérifier si un fichier est ouvert
- 2. Comment identifier si un index Lucene.Net existe dans un dossier?
- 3. Vérifiez si le programme shell est ouvert
- 4. Comment identifier si un EXE est WPF
- 5. Vérifiez si le dossier est utilisé en C#
- 6. Vérifiez si le sélecteur de date est ouvert
- 7. Ruby - Voir si un port est ouvert
- 8. Comment vérifier si FileObject est un dossier?
- 9. Vérifiez si un fichier est ouvert
- 10. comment identifier si mon script PHP est hébergé par d'autres
- 11. Comment identifier si referrer est une redirection 301
- 12. Comment identifier si un type est une structure personnalisée?
- 13. Comment vérifier si un fichier est déjà ouvert en COBOL?
- 14. Comment vérifier si votre document est ouvert dans un IFrame?
- 15. WebDav comment vérifier si le dossier existe?
- 16. Python: Vérifier si le nouveau fichier est dans le dossier
- 17. Comment identifier si les cookies sont désactivés
- 18. Identifier le dossier "Forms" dans une bibliothèque de documents Sharepoint
- 19. Cocoa Services Programming - Comment identifier si l'élément sélectionné est un dossier ou un fichier avec NSFilenamesPboardType défini comme type d'envoi?
- 20. Identifier l'espace de travail ouvert 'actuel' via l'API TFS?
- 21. Comment arrêter le déclenchement du fadeOut si le menu est déjà ouvert, en utilisant Jquery?
- 22. Dans .NET comment détecter si le port TCP sur le serveur est ouvert et/ou actif?
- 23. Vérifiez si chemin est le dossier/paquet/alias dans ObjC
- 24. Htaccess réécrit si l'adresse est sous-dossier?
- 25. Comment supprimer un dossier ouvert par un autre processus?
- 26. Comment identifier si le réseau de données actuel est Edge ou 3G sur l'iPhone
- 27. Comment identifier si le serveur SQL 2005 Express est installé à l'aide cmd
- 28. Dans l'interface utilisateur du navigateur, comment identifier si VSTO 3.0 est installé sur le système?
- 29. Identifier si une URL est présente dans une chaîne
- 30. Identifier si une donnée est RSS ou HTML sur python
Windows Explorer, cmd, un autre gestionnaire de fichiers, une boîte de dialogue d'ouverture/de sauvegarde du shell. Il y a plus de choses que juste l'explorateur qui peut le maintenir ouvert. – Joey
Voulez-vous identifier si l'Explorateur Windows, en particulier, l'a ouvert ou si un autre processus a un handle ouvert? Et que veux-tu accomplir? Attraper l'exception est une bonne indication que d'autres processus ont un problème, si c'est tout ce que vous visez. – Dathan
@Dathan Catching exception est une bonne idée, mais nous avons une très grande application de base de code multi-threaded. C'est bon si nous identifions les conditions météorologiques auxquelles nous avons accès. Merci –