2009-06-08 7 views
4

J'ai un petit utilitaire qui supprime les fichiers des dossiers en utilisant la méthode FileInfo.Delete() de .NET. Fondamentalement, je peux attraper une IOException si le fichier est actuellement ouvert. Cela fonctionne pour tous les fichiers à l'exception des fichiers image (JPG, GIF, BMP, ect.). Lorsque ces types de fichiers sont ouverts, le programme est toujours en mesure de les supprimer sans émettre d'exception. Avez-vous déjà rencontré ça? Comment procéder pour détecter que ces types de fichiers sont ouverts afin que je puisse empêcher la suppression.Pourquoi puis-je supprimer des fichiers image ouverts dans .NET à l'aide de FileInfo?

Merci, Minh

Répondre

8

Si oui ou non vous pouvez supprimer un fichier alors qu'il est ouvert dépend plus du programme dans lequel le fichier est ouvert que le type de fichier. Si l'application par exemple lit simplement le contenu du fichier puis ferme le fichier (comme le Bloc-notes par exemple), vous serez en mesure de supprimer le fichier alors qu'il est "ouvert" (ce qui signifie qu'il est affiché dans le Bloc-notes). D'un autre côté, Excel garde le fichier ouvert d'une manière que vous ne pouvez même pas copier.

1

Utilisez un outil tel que WhoLockMe ou Unlocker pour voir si le fichier est vraiment "ouvert". Comme d'autres l'ont dit, cela n'a rien à voir avec le type de fichier, mais simplement comment le programme qui le lit ouvre le fichier.

Questions connexes