J'ai une application C # Winforms dans laquelle je supprime un fichier vidéo visualisé par un contrôle axWindowsMediaPlayer, qui maintient le fichier DestFile ouvert pendant la lecture de la vidéo. Dans Win 10, je peux supprimer DestFile puis le remplacer par une copie du fichier avec des métadonnées modifiées à l'aide d'un
File.Delete(DestFile)
commande suivie de
File.Move(SourceFile, DestFile) .
Dans Win 7 (64 bits), le
File.Delete
échoue en silence, et le
File.Move
échoue avec le message
Cannot create a file which alreday exists.
Existe-t-il un moyen de faire en sorte que Win se comporte comme Win 10 et autorise la suppression d'un fichier ouvert à un processus (comme le montre l'utilitaire OpenedFiles)?
1 réponse
A constaté que la fermeture de axWindowsMediaPlayer, la suppression et le déplacement et la réouverture de axWindowsMediaPlayer comme indiqué ci-dessous fonctionnaient sur Win 7
axWindowsMediaPlayer1.currentPlaylist.clear();
axWindowsMediaPlayer1.URL = null;
System.IO.File.Delete(sFileAction);
System.IO.File.Move(sDestFile, sFileAction);
axWindowsMediaPlayer1.currentPlaylist = axWindowsMediaPlayer1.newPlaylist("aa", "");
axWindowsMediaPlayer1.currentPlaylist.clear();
axWindowsMediaPlayer1.currentPlaylist.appendItem(axWindowsMediaPlayer1.newMedia(sFileAction));
axWindowsMediaPlayer1.Ctlcontrols.play();`
De nouvelles questions
c#
C # (prononcé "see sharp") est un langage de programmation multi-paradigme de haut niveau, typé statiquement développé par Microsoft. Le code C # cible généralement la famille d'outils et d'exécutions Microsoft .NET, notamment le .NET Framework, .NET Core et Xamarin. Utilisez cette balise pour les questions sur le code écrit en C # ou en spécification formelle de C #.